1. 16 6月, 2023 2 次提交
  2. 15 6月, 2023 2 次提交
  3. 14 6月, 2023 1 次提交
    • R
      Fix logging in the TransT serverless function (#6290) · c2538097
      Roman Donchenko 提交于
      The Docker image for this function includes Conda, and uses `conda run`
      to run the Nuclio processor. Unfortunately, `conda run` buffers the
      entire output of the child process until that process exits, and since
      the processor never exits, its logs are never printed (and slowly
      consume memory).
      
      Conda is actually completely useless here, so just get rid of it, which
      fixes the problem.
      
      In addition, apply a few other improvements:
      
      * Synchronize the PyTorch and TransT versions between the CPU and GPU
         variants.
      
      * Replace `opencv-python` with `opencv-python-headless`, which has fewer
         dependencies.
      
      * Use the `ADD` command instead of wget.
      
      Altogether, these improvements shave ~780 MB off the size of the CPU
      image (didn't check for the GPU one).
      c2538097
  4. 13 6月, 2023 1 次提交
  5. 12 6月, 2023 1 次提交
  6. 10 6月, 2023 1 次提交
  7. 09 6月, 2023 1 次提交
  8. 08 6月, 2023 2 次提交
    • K
      Allow slashes in export filename (#6265) · 7fa1925f
      Kirill Lakhov 提交于
      <!-- Raise an issue to propose your change
      (https://github.com/opencv/cvat/issues).
      It helps to avoid duplication of efforts from multiple independent
      contributors.
      Discuss your ideas with maintainers to be sure that changes will be
      approved and merged.
      Read the [Contribution
      guide](https://opencv.github.io/cvat/docs/contributing/). -->
      
      <!-- Provide a general summary of your changes in the Title above -->
      
      ### Motivation and context
      <!-- Why is this change required? What problem does it solve? If it
      fixes an open
      issue, please link to the issue here. Describe your changes in detail,
      add
      screenshots. -->
      
      ### How has this been tested?
      <!-- Please describe in detail how you tested your changes.
      Include details of your testing environment, and the tests you ran to
      see how your change affects other areas of the code, etc. -->
      
      ### Checklist
      <!-- Go over all the following points, and put an `x` in all the boxes
      that apply.
      If an item isn't applicable for some reason, then ~~explicitly
      strikethrough~~ the whole
      line. If you don't do that, GitHub will show incorrect progress for the
      pull request.
      If you're unsure about any of these, don't hesitate to ask. We're here
      to help! -->
      - [ ] I submit my changes into the `develop` branch
      - [ ] I have added a description of my changes into the
      [CHANGELOG](https://github.com/opencv/cvat/blob/develop/CHANGELOG.md)
      file
      - [ ] I have updated the documentation accordingly
      - [ ] I have added tests to cover my changes
      - [ ] I have linked related issues (see [GitHub docs](
      
      https://help.github.com/en/github/managing-your-work-on-github/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword))
      - [ ] I have increased versions of npm packages if it is necessary
      
      ([cvat-canvas](https://github.com/opencv/cvat/tree/develop/cvat-canvas#versioning),
      
      [cvat-core](https://github.com/opencv/cvat/tree/develop/cvat-core#versioning),
      
      [cvat-data](https://github.com/opencv/cvat/tree/develop/cvat-data#versioning)
      and
      
      [cvat-ui](https://github.com/opencv/cvat/tree/develop/cvat-ui#versioning))
      
      ### License
      
      - [ ] I submit _my code changes_ under the same [MIT License](
      https://github.com/opencv/cvat/blob/develop/LICENSE) that covers the
      project.
        Feel free to contact the maintainers if that's a concern.
      Co-authored-by: NBoris Sekachev <boris.sekachev@yandex.ru>
      7fa1925f
    • M
      Fix predefined sorting for task data (#5083) · 8df8872a
      Maxim Zhiltsov 提交于
      Fixes #5061, #4179
      
      - Added a way to declare custom file ordering for the local task data
      uploads via TUS protocol
      - Added an option to use a manifest to support the `predefined` sorting
      method
      - This file is required for the `predefined` sorting mode with image
      archives
      - Fixed file ordering when tasks are created from SDK or CLI in the
      `predefined` sorting mode
      - Added more tests for task data uploading API
      
      The uploading protocol is implemented:
      
      The user specifies `sorting_method=predefined` if the task creation
      request. Then the data is uploaded.
      
      1. Client files uploading
      1.1. The files are uploaded as separate files (using the TUS protocol)
      or grouped files (using the `Upload-Multiple` requests).
      1.2. The `Upload-Finish` request comes (or its unlabeled legacy
      equivalent). The new optional field can be supplied: `upload_file_order`
      - a list of strings. It allows to override the input file order, if
      necessary, and is only valid with the `predefined` sorting method
      specified.
      1.2.1. If the field is empty or missing, the client files in the data
      requests are considered ordered.
      1.2.2. If the field is not empty, a list containing the file list in the
      required order is expected in the `upload_file_order` field.
      1.2.2.1. If there are `client_files` in the request, the files are
      sorted
      1.2.2.2. If file lists mismatch, an explanatory error is raised.
      
      2. Data processing
      2.1. At this point, all `*_files` are considered ordered as requested.
      2.2. Require a metafile for zip uploads with predefined sorting. The
      file is expected to accompany the uploaded zip file, not to be inside of
      the archive.
      2.3. If there is a metafile in the input data, files are ordered after
      the metafile.
      2.3.1. If the data is extracted from cloud, only the specified subset of
      the files is kept in the manifest.
      2.3.2. If the upload data doesn't exist in the metafile, an error is
      raised.
      2.3.3. A `job_file_mapping` has higher priority than metafile, if
      specified.
      Co-authored-by: NRoman Donchenko <roman@cvat.ai>
      8df8872a
  9. 02 6月, 2023 3 次提交
    • A
      Updated CHANGELOG for v2.5.0 (#6234) · 520d219f
      Andrey Zhavoronkov 提交于
      520d219f
    • M
      Release notes updated (#6232) · 679fcad7
      Mariia Acoca 提交于
      679fcad7
    • M
      Fixed resources import (#5909) · f7fd06c6
      Maria Khrustaleva 提交于
      Fixed:
      - wrong location of tmp file when importing job annotations
      - ```Traceback (most recent call last):
      File
      "/home/maya/Documents/cvat/.env/lib/python3.8/site-packages/rq/worker.py",
      line 795, in work
            self.execute_job(job, queue)
      File "/home/maya/Documents/cvat/cvat/rqworker.py", line 37, in
      execute_job
            return self.perform_job(*args, **kwargs)
      File
      "/home/maya/Documents/cvat/.env/lib/python3.8/site-packages/rq/worker.py",
      line 1389, in perform_job
            self.handle_exception(job, *exc_info)
      File
      "/home/maya/Documents/cvat/.env/lib/python3.8/site-packages/rq/worker.py",
      line 1438, in handle_exception
            fallthrough = handler(job, *exc_info)
      File "/home/maya/Documents/cvat/cvat/apps/engine/views.py", line 2233,
      in rq_exception_handler
            rq_job.exc_info = "".join(
        AttributeError: can't set attribute
        ```
      
      Resolves https://github.com/opencv/cvat/issues/5773
      Resolves https://github.com/opencv/cvat/issues/5563
      
      - root causes of the issues: 
        - the annotation file was uploaded to the server by tus protocol and
      rq job was created but no one next requests for checking status were not
      made. (e.g. user closed the browser tab)
        - the annotation file was uploaded to the server by tus protocol but
      rq job has not yet been created (e.g cvat instance restarted)
        - tasks/projects creation from backups with the same name at the
      same time by different users
      Co-authored-by: NRoman Donchenko <roman@cvat.ai>
      Co-authored-by: NMaxim Zhiltsov <zhiltsov.max35@gmail.com>
      f7fd06c6
  10. 30 5月, 2023 1 次提交
  11. 27 5月, 2023 1 次提交
  12. 26 5月, 2023 2 次提交
    • K
      Fix skeleton tracks (#6075) · 9b38f3e4
      Kirill Sizov 提交于
      Currently, we don't have validation of incoming annotations, as a
      result, there is exist some cases when annotations successfully saved in
      DB, but it's impossible to export them. In order to successfully export
      a dataset with a skeleton track it's required that each track satisfy
      the following condition:
      ` {frame number of track} == {frame number of parent track} == {frame
      number of the first shape of the track}`
      
      This PR adds an additional step during saving annotation in DB. This
      additional step check that all these there "frame numbers" are equal and
      try to automatically fix it's not true.
      9b38f3e4
    • R
      Make serverless function naming and Docker image naming consistent (#6140) · a5cbd1a7
      Roman Donchenko 提交于
      For function names, take the relative path, lowercase, join with dashes
      and replace underscores with dashes.
      
      For image names, take the relative path, lowercase and join with dots.
      
      In a couple cases, rename the function directory instead of fixing the
      config.
      a5cbd1a7
  13. 22 5月, 2023 1 次提交
    • A
      Update Django to 4.x (#6122) · cfe2ea38
      Andrey Zhavoronkov 提交于
      - Reduced rest_api testing time by ~25% in my environment: 430s vs 560s
      - Enabled gzip compression
      - Fixed webhook tests that not actually waiting for the required number
      of delivered messages in response.
      - Fixed `preview` tests
      cfe2ea38
  14. 20 5月, 2023 1 次提交
  15. 19 5月, 2023 2 次提交
  16. 18 5月, 2023 1 次提交
  17. 17 5月, 2023 1 次提交
  18. 16 5月, 2023 1 次提交
  19. 15 5月, 2023 3 次提交
    • R
      Add an option to call Nuclio functions via the dashboard (#6146) · 7d21a73a
      Roman Donchenko 提交于
      Currently, this only happens when running in Kubernetes. This option
      lets CVAT use Nuclio that's deployed to Kubernetes without being
      deployed to Kubernetes itself, or just to use Nuclio that is deployed on
      another machine.
      7d21a73a
    • R
      Fix the CPU HRNet Nuclio function (#6150) · c005d6c0
      Roman Donchenko 提交于
      <!-- Raise an issue to propose your change
      (https://github.com/opencv/cvat/issues).
      It helps to avoid duplication of efforts from multiple independent
      contributors.
      Discuss your ideas with maintainers to be sure that changes will be
      approved and merged.
      Read the [Contribution
      guide](https://opencv.github.io/cvat/docs/contributing/). -->
      
      <!-- Provide a general summary of your changes in the Title above -->
      
      ### Motivation and context
      <!-- Why is this change required? What problem does it solve? If it
      fixes an open
      issue, please link to the issue here. Describe your changes in detail,
      add
      screenshots. -->
      It was broken for two reasons:
      
      * Due to some changes on the PyTorch website, the old way of installing
      the PyTorch packages now installs the ROCm version rather than the CPU
      version (and it doesn't work doe to a missing dependency).
      
      * The newest version of NumPy doesn't work with HRNet due to the
      latter's usage of `np.int`.
      
      Fix these problems, and in addition, rework the build recipe to avoid
      installing unneeded packages. Altogether, the changes massively shrink
      the Docker image size (from ~14 GB to ~2 GB).
      
      I didn't update the GPU version, because a) the first issue doesn't
      affect it, b) the second issue is already fixed in it, and c) I don't
      have a GPU to test it on.
      
      ### How has this been tested?
      <!-- Please describe in detail how you tested your changes.
      Include details of your testing environment, and the tests you ran to
      see how your change affects other areas of the code, etc. -->
      Manual testing with CVAT.
      
      ### Checklist
      <!-- Go over all the following points, and put an `x` in all the boxes
      that apply.
      If an item isn't applicable for some reason, then ~~explicitly
      strikethrough~~ the whole
      line. If you don't do that, GitHub will show incorrect progress for the
      pull request.
      If you're unsure about any of these, don't hesitate to ask. We're here
      to help! -->
      - [x] I submit my changes into the `develop` branch
      - [x] I have added a description of my changes into the
      [CHANGELOG](https://github.com/opencv/cvat/blob/develop/CHANGELOG.md)
      file
      - ~~[ ] I have updated the documentation accordingly~~
      - ~~[ ] I have added tests to cover my changes~~
      - ~~[ ] I have linked related issues (see [GitHub docs](
      
      https://help.github.com/en/github/managing-your-work-on-github/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword))~~
      - ~~[ ] I have increased versions of npm packages if it is necessary
      
      ([cvat-canvas](https://github.com/opencv/cvat/tree/develop/cvat-canvas#versioning),
      
      [cvat-core](https://github.com/opencv/cvat/tree/develop/cvat-core#versioning),
      
      [cvat-data](https://github.com/opencv/cvat/tree/develop/cvat-data#versioning)
      and
      
      [cvat-ui](https://github.com/opencv/cvat/tree/develop/cvat-ui#versioning))~~
      
      ### License
      
      - [x] I submit _my code changes_ under the same [MIT License](
      https://github.com/opencv/cvat/blob/develop/LICENSE) that covers the
      project.
        Feel free to contact the maintainers if that's a concern.
      Co-authored-by: NBoris Sekachev <boris.sekachev@yandex.ru>
      c005d6c0
    • R
      Modernize OpenVINO-based Nuclio functions and allow them to run on Kubernetes (#6129) · 98616c72
      Roman Donchenko 提交于
      Currently, OpenVINO-based functions assume that a local directory will
      be mounted into the container. In Kubernetes, that isn't possible, so
      implement an alternate approach: create a separate base image and
      inherit the function image from it.
      
      In addition, implement some modernizations:
      
      * Upgrade the version of OpenVINO to the latest (2022.3). Make the
      necessary updates to the code. Note that 2022.1 introduced an entirely
      new inference API, but I haven't switched to it yet to minimize changes.
      
      * Use the runtime version of the Docker image as the base instead of the
      dev version. This significantly reduces the size of the final image (by
      ~3GB).
      
      * Replace the `faster_rcnn_inception_v2_coco` model with
      `faster_rcnn_inception_resnet_v2_atrous_coco`, as the former has been
        removed from OMZ.
      
      * Ditto with `person-reidentification-retail-0300` -> `0277`.
      
      * The IRs used in the DEXTR function are not supported by OpenVINO
      anymore (format too old), so rewrite the build process to create them
      from the original code/weights instead.
      98616c72
  20. 11 5月, 2023 1 次提交
    • B
      Running SAM backbone on frontend (#6019) · 0712d7d0
      Boris Sekachev 提交于
      <!-- Raise an issue to propose your change
      (https://github.com/opencv/cvat/issues).
      It helps to avoid duplication of efforts from multiple independent
      contributors.
      Discuss your ideas with maintainers to be sure that changes will be
      approved and merged.
      Read the [Contribution
      guide](https://opencv.github.io/cvat/docs/contributing/). -->
      
      <!-- Provide a general summary of your changes in the Title above -->
      
      ### Motivation and context
      Resolved #5984 
      Resolved #6049
      Resolved #6041
      
      - Compatible only with ``sam_vit_h_4b8939.pth`` weights. Need to
      re-export ONNX mask decoder with some custom model changes (see below)
      to support other weights (or just download them using links below)
      - Need to redeploy the serverless function because its interface has
      been changed.
      
      Decoders for other weights:
      sam_vit_l_0b3195.pth:
      [Download](https://drive.google.com/file/d/1Nb5CJKQm_6s1n3xLSZYso6VNgljjfR-6/view?usp=sharing)
      sam_vit_b_01ec64.pth:
      [Download](https://drive.google.com/file/d/17cZAXBPaOABS170c9bcj9PdQsMziiBHw/view?usp=sharing)
      
      Changes done in ONNX part:
      ```
      git diff scripts/export_onnx_model.py
      diff --git a/scripts/export_onnx_model.py b/scripts/export_onnx_model.py
      index 8441258..18d5be7 100644
      --- a/scripts/export_onnx_model.py
      +++ b/scripts/export_onnx_model.py
      @@ -138,7 +138,7 @@ def run_export(
      
           _ = onnx_model(**dummy_inputs)
      
      -    output_names = ["masks", "iou_predictions", "low_res_masks"]
      +    output_names = ["masks", "iou_predictions", "low_res_masks", "xtl", "ytl", "xbr", "ybr"]
      
           with warnings.catch_warnings():
               warnings.filterwarnings("ignore", category=torch.jit.TracerWarning)
      bsekachev@DESKTOP-OTBLK26:~/sam$ git diff segment_anything/utils/onnx.py
      diff --git a/segment_anything/utils/onnx.py b/segment_anything/utils/onnx.py
      index 3196bdf..85729c1 100644
      --- a/segment_anything/utils/onnx.py
      +++ b/segment_anything/utils/onnx.py
      @@ -87,7 +87,15 @@ class SamOnnxModel(nn.Module):
               orig_im_size = orig_im_size.to(torch.int64)
               h, w = orig_im_size[0], orig_im_size[1]
               masks = F.interpolate(masks, size=(h, w), mode="bilinear", align_corners=False)
      -        return masks
      +        masks = torch.gt(masks, 0).to(torch.uint8)
      +        nonzero = torch.nonzero(masks)
      +        xindices = nonzero[:, 3:4]
      +        yindices = nonzero[:, 2:3]
      +        ytl = torch.min(yindices).to(torch.int64)
      +        ybr = torch.max(yindices).to(torch.int64)
      +        xtl = torch.min(xindices).to(torch.int64)
      +        xbr = torch.max(xindices).to(torch.int64)
      +        return masks[:, :, ytl:ybr + 1, xtl:xbr + 1], xtl, ytl, xbr, ybr
      
           def select_masks(
               self, masks: torch.Tensor, iou_preds: torch.Tensor, num_points: int
      @@ -132,7 +140,7 @@ class SamOnnxModel(nn.Module):
               if self.return_single_mask:
                   masks, scores = self.select_masks(masks, scores, point_coords.shape[1])
      
      -        upscaled_masks = self.mask_postprocessing(masks, orig_im_size)
      +        upscaled_masks, xtl, ytl, xbr, ybr = self.mask_postprocessing(masks, orig_im_size)
      
               if self.return_extra_metrics:
                   stability_scores = calculate_stability_score(
      @@ -141,4 +149,4 @@ class SamOnnxModel(nn.Module):
                   areas = (upscaled_masks > self.model.mask_threshold).sum(-1).sum(-1)
                   return upscaled_masks, scores, stability_scores, areas, masks
      
      -        return upscaled_masks, scores, masks
      +        return upscaled_masks, scores, masks, xtl, ytl, xbr, ybr
      ```
      
      ### How has this been tested?
      <!-- Please describe in detail how you tested your changes.
      Include details of your testing environment, and the tests you ran to
      see how your change affects other areas of the code, etc. -->
      
      ### Checklist
      <!-- Go over all the following points, and put an `x` in all the boxes
      that apply.
      If an item isn't applicable for some reason, then ~~explicitly
      strikethrough~~ the whole
      line. If you don't do that, GitHub will show incorrect progress for the
      pull request.
      If you're unsure about any of these, don't hesitate to ask. We're here
      to help! -->
      - [x] I submit my changes into the `develop` branch
      - [x] I have added a description of my changes into the
      [CHANGELOG](https://github.com/opencv/cvat/blob/develop/CHANGELOG.md)
      file
      - [ ] I have updated the documentation accordingly
      - [ ] I have added tests to cover my changes
      - [x] I have linked related issues (see [GitHub docs](
      
      https://help.github.com/en/github/managing-your-work-on-github/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword))
      - [x] I have increased versions of npm packages if it is necessary
      
      ([cvat-canvas](https://github.com/opencv/cvat/tree/develop/cvat-canvas#versioning),
      
      [cvat-core](https://github.com/opencv/cvat/tree/develop/cvat-core#versioning),
      
      [cvat-data](https://github.com/opencv/cvat/tree/develop/cvat-data#versioning)
      and
      
      [cvat-ui](https://github.com/opencv/cvat/tree/develop/cvat-ui#versioning))
      
      ### License
      
      - [x] I submit _my code changes_ under the same [MIT License](
      https://github.com/opencv/cvat/blob/develop/LICENSE) that covers the
      project.
        Feel free to contact the maintainers if that's a concern.
      0712d7d0
  21. 05 5月, 2023 1 次提交
  22. 01 5月, 2023 1 次提交
  23. 28 4月, 2023 1 次提交
  24. 27 4月, 2023 1 次提交
  25. 25 4月, 2023 2 次提交
  26. 19 4月, 2023 2 次提交
  27. 14 4月, 2023 3 次提交