.. _case-files: **************************************** Case Files **************************************** FindFace CIBR allows for conducting case management and performing investigation by analyzing associated video footage and photo files. This functionality is available on the :guilabel:`Case Files` tab. .. rubric:: In this section: .. contents:: :local: Video File Formats ===================== Video footage used for case investigations is accepted in a wide variety of formats. Click :ref:`here ` for listing. Case Investigation Workflow ================================ Case investigation is conducted in the following way: #. Create a new case file. Specify the incident date and name, the case ID in a registry, and the incident date. #. Specify case details and set up access permissions for it. #. Upload a video footage and photo files from the criminal scene. Set up video processing parameters if needed. Process the video. The system will return human faces detected in it. #. Parse the detected faces. Figure out which individual is likely to be a suspect, a victim, or a witness. Other individuals will be considered not relevant to the case. Link faces to matching records in the :ref:`global record index ` and participants of other cases. #. Fill in case participant records. Specify their names and attach related documents. #. Keep returning to the case file to supplement it with new materials, as the investigation progresses. Create Case File =================== To create a case file, do the following: #. Navigate to :guilabel:`Case Files`. #. Click :guilabel:`+ Add case file`. |case_new_en| .. |case_new_en| image:: /_static/case_new_en.png :scale: 65% .. |case_new_ru| image:: /_static/case_new_ru.png :scale: 65% #. Enter the descriptive name of the case. Specify the incident date. #. Add a comment, if needed. #. Specify the case ID and date in the registry, if needed. #. Click :guilabel:`Add >`. As a result, the case file will be added to the case list. |case_basic_en| .. |case_basic_en| image:: /_static/case_basic_en.png :scale: 65% .. |case_basic_ru| image:: /_static/case_basic_ru.png :scale: 65% Case Access Permissions and Related Documents =================================================== After you create a case, specify its details and set up access permissions. Do the following: #. Click the case on the case list to open it. |case_list_en| .. |case_list_en| image:: /_static/case_list_en.png :scale: 65% .. |case_list_ru| image:: /_static/case_list_ru.png :scale: 65% #. Click :guilabel:`Set access permissions` to modify the default access permissions. #. Attach one or several files relevant to the case. #. Click :guilabel:`Save`. |case_details_en| .. |case_details_en| image:: /_static/case_details_en.png :scale: 65% .. |case_details_ru| image:: /_static/case_details_ru.png :scale: 65% Upload and Process Video File ==================================== To upload and process a CSI video footage, do the following: #. Navigate to the :guilabel:`Case files` tab. #. Click the case on the case list to open it. #. Navigate to the :guilabel:`Videos` tab. #. Click the :guilabel:`+ Add video` button. |case_video_en| .. |case_video_en| image:: /_static/case_video_en.png :scale: 50% .. |case_video_ru| image:: /_static/case_video_ru.png :scale: 50% #. Specify a URL or select a file. Click :guilabel:`Upload`. |case_video_upload_en| .. |case_video_upload_en| image:: /_static/case_video_upload_en.png :scale: 65% .. |case_video_upload_ru| image:: /_static/case_video_upload_ru.png :scale: 65% #. The video file will be added to the case video uploads. Click :guilabel:`Upload` to upload another video file. |case_video_list_en| .. |case_video_list_en| image:: /_static/case_video_list_en.png :scale: 65% .. |case_video_list_ru| image:: /_static/case_video_list_ru.png :scale: 65% #. Click the video on the list to open the processing configuration wizard. Set up the :ref:`video processing parameters `. .. _video_processing_parameters: Video processing parameters ================================ #. For each video, you will be provided with complete statistics such as current session duration, the number of objects processed with errors after the last job restart, the number of frame drops, and other data. To consult these data, click the name of the video on the list and go to the :guilabel:`Info` tab. |case_video_info_en| .. |case_video_info_en| image:: /_static/case_video_info_en.png :scale: 70% .. |case_video_info_ru| image:: /_static/case_video_info_ru.png :scale: 70% #. On the :guilabel:`General` tab, you can change name if needed. |case_video_general_en| .. |case_video_general_en| image:: /_static/case_video_general_en.png :scale: 80% .. |case_video_general_ru| image:: /_static/case_video_general_ru.png :scale: 80% #. On the :guilabel:`Advanced` tab, fine-tune the video: |case_video_advanced_en| .. |case_video_advanced_en| image:: /_static/case_video_advanced_en.png :scale: 80% .. |case_video_advanced_ru| image:: /_static/case_video_advanced_ru.png :scale: 80% * If needed, change the video orientation. .. important:: Be aware that the ``findface-multi-legacy`` server rotates the video using post-processing tools. It can negatively affect performance. Rotate the video via the camera functionality wherever possible. * :guilabel:`Timeout`: Specify the timeout in milliseconds for posting detected objects. * :guilabel:`Verify SSL certificate`: Select to enable verification of the server SSL certificate when the object tracker posts objects to the server over https. Deselect the option if you use a self-signed certificate. * :guilabel:`Retrieve timestamps from stream`: Select to retrieve and post timestamps from the video stream. Deselect the option to post the current date and time. * :guilabel:`Add to timestamps`: Add the specified number of seconds to timestamps from the stream. * :guilabel:`FFMPEG parameters`: FFMPEG options for the video stream in the key-value format, for example, [“rtsp_transpotr=tcp”, “ss=00:20:00”]. * :guilabel:`Play speed limit`: If less than zero, the speed is not limited. In other cases, the stream is read with the given ``play_speed``. Not applicable for live-streaming. * :guilabel:`Force input format`: Pass FFMPEG format (mxg, flv, etc.) if it cannot be detected automatically. * :guilabel:`Minimum motion intensity`: Minimum motion intensity to be detected by the motion detector. * :guilabel:`Read frames from source without drops`: If ``findface-video-worker`` does not have enough resources to process all frames with objects, it drops some of them. If this option is active (true) ``findface-video-worker`` puts excessive frames on a waiting list to process them later. * :guilabel:`Router URL (router_url)`: IP address for posting detected objects to external video workers from ``findface-video-worker``. By default, ``'http://127.0.0.1'``. #. Specify the region of tracking within the camera field and region of interest (:guilabel:`Zones`). Click :guilabel:`Save`. |case_video_zones_en| .. |case_video_zones_en| image:: /_static/case_video_zones_en.png :scale: 80% .. |case_video_zones_ru| image:: /_static/case_video_zones_ru.png :scale: 80% The region of tracking enables detecting and tracking faces only inside a clipping rectangle. You can use this option to reduce the video object detector load. The region of interest enables posting objects detected only within its boundaries. #. On the :guilabel:`Faces` tab, specify settings for face detection. |case_video_analytics_en| .. |case_video_analytics_en| image:: /_static/case_video_analytics_en.png :scale: 80% .. |case_video_analytics_ru| image:: /_static/case_video_analytics_ru.png :scale: 80% * :guilabel:`Size`: Minimum object size in pixels to post and maximum object size in pixels to post. * :guilabel:`Quality`: The minimum quality of the object image for detection. The allowed range is from 0 to 1. The recommended reference value is 0.5, which corresponds to object images of satisfying quality. Do not change the default value without consulting with our technical experts (support@ntechlab.com). * :guilabel:`JPEG quality`: Full frame compression quality. * :guilabel:`Full frame in PNG`: Send full frames in PNG and not in JPEG as set by default. Do not enable this parameter without consulting with our technical experts (support@ntechlab.com) as it can affect the entire system functioning. * :guilabel:`Overlap threshold`: The percentage of overlap of bboxes between two serial frames so that these bboxes are considered as one track. The range of values is from 0 to 1. Do not change the default value without consulting with our technical experts (support@ntechlab.com). * :guilabel:`Track maximum duration`: The maximum approximate number of frames in a track, after which the track is forcefully completed. Enable it to forcefully terminate endless tracks, for example, tracks with objects from advertising media. * :guilabel:`Forced termination interval`: Terminate the track if no new object has been detected within the specified time (in seconds). * :guilabel:`Send track history`: Send array of bbox coordinates along with the event. May be applicable for external integrations to map the path of an object. * :guilabel:`Crop full frame`: Select to crop the full frame to the size of the ROT area before sending it for recognition. The size of the full frame will be equal to the size of the ROT area. * :guilabel:`Offline mode (overall_only)`: By default, the system uses the offline mode to process the video, i.e., it posts one snapshot of the best quality per track to save disk space. Disable it to receive more object snapshots if needed. If the offline mode is on, the parameters of the real-time mode are off. Real-time mode parameters: .. note:: These parameters are non-functional if the offline mode is on. * :guilabel:`Interval`: Time interval in seconds (integer or decimal) within which the object tracker picks up the best snapshot in the real-time mode. * :guilabel:`Post first object immediately`: Select to post the first object from a track immediately after it passes through the quality, size, and ROI filters, without waiting for the first ``realtime_post_interval`` to complete in real-time mode. Deselect the option to post the first object after the first ``realtime_post_interval`` completes. * :guilabel:`Post track first frame`: At the end of the track, the first frame of the track will be additionally sent complimentary to the overall frame of the track. May be applicable for external integrations. * :guilabel:`Post in every interval`: Select to post the best snapshot within each time interval (``realtime_post_interval``) in real-time mode. Deselect the option to post the best snapshot only if its quality has improved comparing to the posted snapshot. * :guilabel:`Post track last frame`: At the end of the track, the last frame of the track will be additionally sent complimentary to the overall frame of the track. May be applicable for external integrations. #. On the list of video uploads, click three dots → :guilabel:`Process` to start object identification. |case_video_process_en| .. |case_video_process_en| image:: /_static/case_video_process_en.png :scale: 40% .. |case_video_process_ru| image:: /_static/case_video_process_ru.png :scale: 40% The processing results will be available on the :guilabel:`Clusters` tab and on the :guilabel:`Cluster events` tab of the participant. .. _upload_photo_case: Upload and Process Photo File ==================================== To upload and process a CSI photo file, do the following: #. Navigate to :guilabel:`Case Files`. #. Click :guilabel:`+ Add photo`. |case_add_photo_en| .. |case_add_photo_en| image:: /_static/case_add_photo_en.png :scale: 60% .. |case_add_photo_ru| image:: /_static/case_add_photo_ru.png :scale: 60% #. Select photos to upload. |case_photo_upload_en| .. |case_photo_upload_en| image:: /_static/case_photo_upload_en.png :scale: 65% .. |case_photo_upload_ru| image:: /_static/case_photo_upload_ru.png :scale: 65% #. Click :guilabel:`Add and process`. As a result, the photo file will be added to the list of photo uploads and processed. #. To restart object identification on the photo file, click three dots → :guilabel:`Process`. |case_photo_process_en| .. |case_photo_process_en| image:: /_static/case_photo_process_en.png :scale: 70% .. |case_photo_process_ru| image:: /_static/case_photo_process_ru.png :scale: 70% #. Click the name of image in a list to see cluster events and modify a name of the photo file or add a comment, if needed. |case_photo_events_en| .. |case_photo_events_en| image:: /_static/case_photo_events_en.png :scale: 45% .. |case_photo_events_ru| image:: /_static/case_photo_events_ru.png :scale: 45% .. _detected_people_analysis: Detected People Analysis ============================ The clusters of faces, once detected in the video and photo files, are shown on the :guilabel:`Clusters` tab. Here you need to parse them subject to the role a person plays in the incident and establish links to relevant global records, other case files, participants of the same case, and other clusters. If a detected object has a match in the card index, a case cluster thumbnail contains the following information: * normalized object image * record name * the similarity between matched objects * watch list(s) * :guilabel:`Acknowledge` button Click the :guilabel:`Acknowledge` button to acknowledge case cluster. .. note:: The sign |unacknowledge_en| on the case list indicates that there is an unacknowledged case cluster in the case. .. |unacknowledge_en| image:: /_static/unacknowledge_en.png :scale: 60% To analyse detected people, do the following: #. Click on a face on the list. |case_video_clusters_en| .. |case_video_clusters_en| image:: /_static/case_video_clusters_en.png :scale: 55% .. |case_video_clusters_ru| image:: /_static/case_video_clusters_ru.png :scale: 55% .. tip:: With the large number of clusters, use filters. Click the :guilabel:`More filters` button in the upper-right corner to display them. .. note:: Some filters from the list below may be hidden, depending on which recognition features are enabled. * :guilabel:`Participant`: display only case clusters/only participants or any. * :guilabel:`Acknowledged`: display only unacknowledged clusters/only acknowledged clusters or any. * :guilabel:`Matches`: display case clusters only with/without matching the record, or all events. * :guilabel:`Watch lists`: display case clusters only for a selected watch list. * :guilabel:`Date and time`: display only case clusters formed within a certain period. * :guilabel:`ID`: display a case cluster with a given ID. .. rubric:: Specific filters for face clusters * :guilabel:`Age`: display case clusters with people of a given age. * :guilabel:`Beard`: filter case clusters by the fact of having a beard. * :guilabel:`Emotions`: display case clusters with given emotions. * :guilabel:`Gender`: display case clusters with people of a given gender. * :guilabel:`Glasses`: filter case clusters by the fact of wearing glasses. * :guilabel:`Face mask`: filter case clusters by the fact of wearing a face mask. #. Link the face to a matching record in the :ref:`global record index ` and matching participants of other case files. Do so by clicking the :guilabel:`Add` button that appears when you hover over the photo. You can also link the face to participants of the same case and other clusters. #. Click the face in section :guilabel:`Clusters` to see detected faces in full screen and split some of them from a cluster, if needed. #. Click :guilabel:`Mark as participant`. |case_video_add_en| .. |case_video_add_en| image:: /_static/case_video_add_en.png :scale: 65% .. |case_video_add_ru| image:: /_static/case_video_add_ru.png :scale: 65% #. Specify the participant name and type, and add a comment if necessary. This will create a new case participant record that you will be able to view on the :guilabel:`Participants` tab. |case_video_participant_en| .. |case_video_participant_en| image:: /_static/case_video_participant_en.png :scale: 65% .. |case_video_participant_ru| image:: /_static/case_video_participant_ru.png :scale: 65% A participant can be one of the following types: * victim * witness * suspect #. Click :guilabel:`Save and close`. As a result, the information will be added to a case cluster thumbnail and the face image will have a round frame. The number of cluster events is shown by the number in the upper right corner of the case cluster thumbnail. Click the number to view full screen of the image in the new window. You can split the face from a cluster, if needed. |case_participant_thumbnail_en| .. |case_participant_thumbnail_en| image:: /_static/case_participant_thumbnail_en.png :scale: 65% .. |case_participant_thumbnail_ru| image:: /_static/case_participant_thumbnail_ru.png :scale: 65% #. You can reopen the connections wizard on the :guilabel:`Clusters` tab by clicking on the participant's face again. |case_cluster_participant_en| .. |case_cluster_participant_en| image:: /_static/case_cluster_participant_en.png :scale: 65% .. |case_cluster_participant_ru| image:: /_static/case_cluster_participant_ru.png :scale: 65% To access the participant record, navigate to the :guilabel:`Participants` tab. .. _case_participant_records: Case Participant Records =============================== The :guilabel:`Participants` tab provides access to all participant data collected so far. To view a case participant record, click the relevant face on the list. |case_record_en| .. |case_record_en| image:: /_static/case_record_en.png :scale: 40% .. |case_record_ru| image:: /_static/case_record_ru.png :scale: 40% * On the :guilabel:`Info` tab you can modify participant information, if needed. * On the :guilabel:`Cluster events` tab you can view detected face images of the participant and other face images of the case cluster. * On the :guilabel:`Connections` tab you can view connections of a participant with persons from other clusters. FindFace CIBR allows you to search detected objects from the case participant records. To navigate from the case participant record to the search tab, click three dots → :guilabel:`Search`. If during a case investigation it is necessary to reset the participant record, click three dots → :guilabel:`Reset participant`. With the large number of participants, use filters. Click the :guilabel:`More filters` button in the upper-right corner to display them. * :guilabel:`Name contains`: display participants by name. * :guilabel:`Role`: display participants for a selected role (Any/Victim/Witness/Suspect). * :guilabel:`Date and time`: display participants by case date within a certain period. Case File Archive ============================= It's possible to label a case file as archived to indicate that the case is closed, or for another reason. To archive/unarchive case files, do the following: #. On the :guilabel:`Case Files` tab, select one or several case files. #. Click :guilabel:`Archive selected` to archive the case files. Click :guilabel:`Delete selected` to delete them. |case_archive_en| .. |case_archive_en| image:: /_static/case_archive_en.png :scale: 55% .. |case_archive_ru| image:: /_static/case_archive_ru.png :scale: 55% If a case has been archived, you cannot change it anymore. To add photos and video footage or modify participants, open the case again by checking it and clicking :guilabel:`Open selected`. You can filter the case file list by archived status: :guilabel:`All`, :guilabel:`Opened`, :guilabel:`Archived` or use additional filter by clicking :guilabel:`More filters`: * :guilabel:`Unacknowledged status`: display cases by acknowledged status. * :guilabel:`Date and time`: display cases by date within a certain period. * :guilabel:`ID`: display a case with a given ID.