Cognite Vision Enhancements

Related products: Contextualization

Hello,

Introduction
I have been working with Cognite Vision app, and I’d like to share my experience and suggest improvements that could be helpful.

 

Problem

With the assistance of the vision.extract (TextDetection) feature, I have developed a script to aid in the detection of asset tags. This script offers the following features: it matches the detected text with existing assets based on contextualization rules, and predicts the asset based on the extracted text. This functionality becomes particularly helpful when the extracted text is not 100% accurate due to pixelation or if a letter or number is not clearly visible in the image. The script suggests a number of assets based on the extracted text, providing confidence scores to assist the user in selecting the correct asset.

 

Flow

The script will execute on all images, generating a set of images.AssetLink annotations per image if any suggestions are found. Subsequently, the user will access the Vision UI to review and approve the correct annotation from the provided suggestions.

 

Suggestions

  • Annotation Filter: Enhance the filter functionality by incorporating additional fields, such as creating_app, creating_app_version, or creating_user. This enhancement aims to facilitate image list filtering, enabling users to display only those images with annotations having the status suggested and created by the asset tag prediction script.
  • Breadcrumbs: Currently, the breadcrumbs are dysfunctional when an image is opened. It is essential to ensure that users can easily navigate back to the images list with the preselected filters intact
  • Navigation: Occasionally, to accurately select the predicted asset, it becomes necessary to open the 360 view and examine adjacent assets for clear identification. Including a button that opens the 360 view with the camera focused on the selected image could enhance user navigation. Alternatively, providing the option to search for the image by its ID within the 360 view would also be beneficial.
  • Reviewing Annotations: In cases where there are multiple predictions, and a user approves one, it would be beneficial to display a popup message asking, 'Do you want to reject the other annotations that appeared in the same location?' This feature is particularly helpful when, for instance, there are 7 suggested annotations with the exact bounding box location. By approving one, the user can efficiently manage the process by simultaneously rejecting the remaining 6 suggestions.

 

Thank you for considering these suggestions. Your attention to these enhancements will contribute to a more streamlined and efficient workflow. I look forward to any further discussions or implementations that may arise.

Thank you for sharing one more your insightful reflection, Hussain! 

We greatly appreciate your contribution and stay tuned for updates on how we plan to proceed.


Thank you for your kind words! I'm glad to hear that my reflections are valuable to the team. Looking forward to the next release.


Hi @Hussain Mubaireek,

Thank you for your insight and suggestion!

Regarding the first request on Annotation filtering, you can filter by creatingApp, creatingAppVersion, creatingUser, and status. Here's the link for more details: https://api-docs.cognite.com/20230101/tag/Annotations/operation/annotationsFilter. 
Would this fulfil your needs?

Also, out of curiosity, have you tried out /diagramDetect with partialMatch enabled? This functionality suggests asset mapping for tags as well. However, I understand that your use case might require a more fuzzy mapping approach. If you haven't tried it yet, perhaps it's worth giving it a shot?

 

Best regards,

Que


Hi @Hussain Mubaireek,

Thank you for your insight and suggestion!

Regarding the first request on Annotation filtering, you can filter by creatingApp, creatingAppVersion, creatingUser, and status. Here's the link for more details: https://api-docs.cognite.com/20230101/tag/Annotations/operation/annotationsFilter. 
Would this fulfil your needs?

Also, out of curiosity, have you tried out /diagramDetect with partialMatch enabled? This functionality suggests asset mapping for tags as well. However, I understand that your use case might require a more fuzzy mapping approach. If you haven't tried it yet, perhaps it's worth giving it a shot?

 

Best regards,

Que

Hello @Que Tran 

Yes, I can do that with the APIs, but I was referring to doing it through the UI.

Regards.