.. _cards: ************************************************* Set Up Object Monitoring and Card Index ************************************************* FindFace Multi provides video monitoring of the following objects: * human face * human body (silhouette) * car/vehicle Object monitoring is implemented using a set of default and custom watch lists, e.g., wanted, VIP, etc., and a card index. You can create as many custom watch lists as necessary. The card index contains two types of cards: * person card: aggregates data about a person, such as photos of their face and body, their name, and associated files. * car card: contains car-related data, such as car photos and license plate number information. Each card is allocated to one or several watch lists. To put a person/car on video monitoring, you need to make a relevant watch list active. To create cards in bulk, use the :ref:`batch photo upload ` functionality. .. rubric:: In this section: .. contents:: :local: .. _unmatched-list: Monitoring Unmatched Objects ================================== FindFace Multi features a special pre-configured watch list used for monitoring only unmatched objects (objects that do not match any card). This watch list cannot be removed from the system. To edit its settings, navigate to the :guilabel:`Preferences` tab. Click :guilabel:`Watch Lists` and then click :guilabel:`Unmatched` in the table. |unmatched_en| .. |unmatched_en| image:: /_static/unmatched_en.png :scale: 60% .. |unmatched_ru| image:: /_static/unmatched_ru.png :scale: 60% .. _create-list: Create Watch List ================================= You can create a custom watch list. Do the following: #. Navigate to the :guilabel:`Preferences` tab. Click :guilabel:`Watch Lists`. #. Click :guilabel:`+`. |create_list_en| .. |create_list_en| image:: /_static/create_list_en.png :scale: 60% .. |create_list_ru| image:: /_static/create_list_ru.png :scale: 60% #. From the :guilabel:`Label` palette, select a color which will be shown in event notifications for this list. Keep in mind that the right color makes for a quicker response of the person on duty. |list_en| .. |list_en| image:: /_static/list_en.png :scale: 60% .. |list_ru| image:: /_static/list_ru.png :scale: 60% #. Specify the watch list name. Add a comment if needed. #. Select a camera group(s) that will be used to monitor the watch list. If no groups specified, the watch list will be monitored by all active cameras in the system. #. Check :guilabel:`Require acknowledgment` if it is mandatory that events associated with the list be manually acknowledged. #. Check :guilabel:`Enable sound alert` to turn on sound notifications for the list if needed. #. By default, all watch lists in the system are applied the :ref:`generic confidence threshold `. To set an individual threshold for the watch list, check :guilabel:`Confidence Threshold` and specify the threshold value. .. include:: /_inclusions/threshold_important.rst #. Check :guilabel:`Active`. #. Click :guilabel:`Save`. #. On the :guilabel:`Permissions` tab, assign privileges on the watch list, specifying which user roles are allowed to change/view the watch list settings. |list_permissions_en| .. |list_permissions_en| image:: /_static/list_permissions_en.png :scale: 60% .. |list_permissions_ru| image:: /_static/list_permissions_ru.png :scale: 60% #. Click :guilabel:`Save`. .. _create-person-card: Create Person Card ==================================== To create a person card manually, do the following: .. important:: To be able to attach body images to a person card, you must enable the :ref:`body detection ` functionality. #. Navigate to the :guilabel:`Cards` tab. #. Click :guilabel:`Humans`. #. Click :guilabel:`+`. |create_person_card_en| .. |create_person_card_en| image:: /_static/create_person_card_en.png :scale: 60% .. |create_person_card_ru| image:: /_static/create_person_card_ru.png :scale: 60% #. Attach images of the person's face/body. Supported formats: WEBP, JPG, BMP, PNG. .. important:: A face/body in the images must be close to a frontal position. Distance between pupils in the face image: 60 px. Images that do not meet the requirements will be rejected with a detailed error description. |person_card_en| .. |person_card_en| image:: /_static/person_card_en.png :scale: 70% .. |person_card_ru| image:: /_static/person_card_ru.png :scale: 70% #. Attach related files. #. Specify the card name. If necessary, add a comment. #. From the :guilabel:`Watch lists` drop-down menu, select a watch list for the card (or several watch lists, one by one). #. Check :guilabel:`Active`. If a card is inactive, it is excluded from the monitoring. #. Click :guilabel:`Save`. .. note:: If a similar card already exists in the card index, you will be given the following options: * add objects from the new card to the already existing one and cancel the new card creation * create the new card anyway * cancel creation .. _create-car-card: Create Car Card ========================== .. important:: For car cards to be available for creation, you must enable the :ref:`car detection ` functionality. To create a car card manually, do the following: #. Navigate to the :guilabel:`Cards` tab. #. Click :guilabel:`Cars`. #. Click :guilabel:`+`. |create_car_card_en| .. |create_car_card_en| image:: /_static/create_car_card_en.png :scale: 60% .. |create_car_card_ru| image:: /_static/create_car_card_ru.png :scale: 60% #. Attach the car images. Supported formats: WEBP, JPG, BMP, PNG. |car_card_en| .. |car_card_en| image:: /_static/car_card_en.png :scale: 70% .. |car_card_ru| image:: /_static/car_card_ru.png :scale: 70% #. Attach related files. #. Specify the card name. If necessary, add a comment. #. Specify the car's license plate number if applicable. #. From the :guilabel:`Watch lists` drop-down menu, select a watch list for the card (or several lists, one by one) . #. Check :guilabel:`Active`. If a card is inactive, it is excluded from the monitoring. #. Click :guilabel:`Save`. .. note:: If a similar card already exists in the card index, you will be given the following options: * add objects from the new card to the already existing one and cancel the new card creation * create the new card anyway * cancel creation View Matched Clusters =================================== .. important:: To be able to view matched clusters, you must :ref:`enable clustering ` of relevant object types. In the course of operation, the system may supplement cards with matched :ref:`clusters `. To view a cluster matched with an exact person or car, open the corresponding card and navigate to the :guilabel:`Cluster images` tab. |card_clusters_en| .. |card_clusters_en| image:: /_static/card_clusters_en.png :scale: 50% .. |card_clusters_ru| image:: /_static/card_clusters_ru.png :scale: 50% In a person card, you will see a matched face cluster and a body cluster. A relevant car cluster will be shown in a car card. .. _relations: Card Relations ============================================ You can set up relations between cards by creating a common category they belong. For example, the ``Household`` category can include all family members and their vehicles. A card can be related to as many categories as needed. To set up a card-to-category relation, do the following: #. Open the card for editing by clicking it on the list. Navigate to the :guilabel:`Connections` tab. #. Click :guilabel:`Create connection`. |create_card_relations_en| .. |create_card_relations_en| image:: /_static/create_card_relations_en.png :scale: 50% .. |create_card_relations_ru| image:: /_static/create_card_relations_ru.png :scale: 50% #. In the :guilabel:`Relation name` field, specify the category name. If there are already existing matching categories in the system, you will be able to see them and select one of them shortly after you start typing the name. |card_relations_en| .. |card_relations_en| image:: /_static/card_relations_en.png :scale: 60% .. |card_relations_ru| image:: /_static/card_relations_ru.png :scale: 60% #. In the :guilabel:`Link name` field, describe the link between the card and the category. #. If there is another card related to the same category, you can promptly add it right here. Do the following: #. Check :guilabel:`Connect with another card`. #. Select the card type: :guilabel:`Person` or :guilabel:`Car`. #. Start typing the card name in the same-name field. As a result, the system will automatically suggest cards with relevant names. Select one of them. #. In the :guilabel:`Link name` field, describe the link between the card and the category. #. Click :guilabel:`Save`. The created links will be shown on the :guilabel:`Connections` tab and on the card list. |card_relations_list_en| .. |card_relations_list_en| image:: /_static/card_relations_list_en.png :scale: 50% .. |card_relations_list_ru| image:: /_static/card_relations_list_ru.png :scale: 50% |card_relations_hover_en| .. |card_relations_hover_en| image:: /_static/card_relations_hover_en.png :scale: 70% .. |card_relations_hover_ru| image:: /_static/card_relations_hover_ru.png :scale: 70% .. note:: If there are several cards related to the same category, repeat this step-by-step instruction with all the cards involved. .. _batch-upload: Batch Card Upload ======================== To create cards in bulk, use the batch card upload. Do the following: .. tip:: If the number of photos you need to upload exceeds 10,000, use the :ref:`console bulk upload `. In the current version, it does not support cars and bodies, only faces. .. important:: Supported formats: WEBP, JPG, BMP, PNG. .. important:: A face/body in the images must be close to a frontal position. Distance between pupils in face images: 60 px. Images that do not meet the requirements will be rejected with a detailed error description. #. Navigate to the :guilabel:`Cards` tab. #. Click :guilabel:`Humans` or :guilabel:`Cars`, subject to the card type being uploaded. #. Click :guilabel:`+`. #. Click :guilabel:`Try batch card upload`. |batch_upload_en| .. |batch_upload_en| image:: /_static/batch_upload_en.png :scale: 60% .. |batch_upload_ru| image:: /_static/batch_upload_ru.png :scale: 60% #. For person cards, specify the objects to detect: faces or bodies. #. Select multiple image files, or a directory. |configure_upload_en| .. |configure_upload_en| image:: /_static/configure_upload_en.png :scale: 70% .. |configure_upload_ru| image:: /_static/configure_upload_ru.png :scale: 70% #. You can use image file names as a basis for names and/or comments in cards to be created. Select the necessary option(s). Then configure the automatic name/comment generation rule by appending a custom prefix and/or postfix to the file name. .. tip:: To avoid merging the 3 words into one, use underscore or another symbol in the prefix and postfix. #. From the :guilabel:`Watch lists` drop-down menu, select a classification list for the cards. #. Use the :guilabel:`Parallel Upload` option to specify the number of photo upload streams. The more streams you use, the faster it takes to complete the upload, however it requires more resources as well. #. From the :guilabel:`Group Photo` drop-down menu, select the system behavior upon detecting several objects in a photo: reject the photo, upload the biggest object, or upload all objects. #. Click :guilabel:`Start` to launch the photo upload. .. important:: To view the batch photo upload log, click :guilabel:`Logs`. You can then download the log in the ``.csv`` format if needed. |batch_upload_log_en| .. |batch_upload_log_en| image:: /_static/batch_upload_log_en.png :scale: 50% .. |batch_upload_log_ru| image:: /_static/batch_upload_log_ru.png :scale: 50% Filter Cards ================================= You can find all cards created in FindFace Multi on the :guilabel:`Cards` tab. Use the following filters to filter them out: On the :guilabel:`Humans` tab (people cards): * :guilabel:`Card name`: filter cards by name. * :guilabel:`Watch lists`: display cards included into selected watch lists. * :guilabel:`Faces`: filter cards by presence of a face image in a card attachment. * :guilabel:`Bodies`: filter cards by presence of a body image in a card attachment. * :guilabel:`Filled`: display cards subject to whether they are auto-generated (not filled) or completed (filled) cards. See :ref:`auto-cards` for a detailed explanation. * :guilabel:`ID`: display a card with a given ID. On the :guilabel:`Cars` tab (car cards): * :guilabel:`Card name`: filter cards by name. * :guilabel:`License plate`: filter cards by license plate number. * :guilabel:`Watch lists`: display cards included into selected watch lists. * :guilabel:`Cars`: filter cards by presence of a car image in a card attachment. * :guilabel:`Filled`: display cards subject to whether they are auto-generated (not filled) or completed (filled) cards. * :guilabel:`ID`: display a card with a given ID. You can sort out cards in the list by :guilabel:`ID`. |filter_card_en| .. |filter_card_en| image:: /_static/filter_card_en.png :scale: 60% .. |filter_card_ru| image:: /_static/filter_card_ru.png :scale: 60% Purge Card Index ============================ You can purge the entire card index in one click. To do so, navigate to the :guilabel:`Preferences` tab. Click :guilabel:`Watch Lists`. Click :guilabel:`Delete All Cards`. |card_delete_en| .. |card_delete_en| image:: /_static/card_delete_en.png :scale: 60% .. |card_delete_ru| image:: /_static/card_delete_ru.png :scale: 60% Disable Event Creation for Specific Objects ============================================= Sometimes, it is necessary to omit certain objects during monitoring. One of the most common cases is the objects in advertisement media located in the camera field. Being detected continuously by your system, they can easily overflow the event feed and the database. To prevent this from happening, do the following: #. :ref:`Create a watch list ` that will store the objects excluded from detection. In its settings, check :guilabel:`Do not create events`. |excluded_en| .. |excluded_en| image:: /_static/excluded_en.png :scale: 60% .. |excluded_ru| image:: /_static/excluded_ru.png :scale: 60% #. For each excluded object, create a card and add it to the watch list. .. _auto-cards: Auto-Generated and Completed Cards ============================================ Subject to the way a card is created, there are auto-generated (“auto”) cards and completed cards. .. rubric:: Auto cards Auto cards are created automatically by the system for clusters that have no matches in the card index. .. note:: By default, the creation of auto cards is disabled. To enable it, set ``'CREATE_AUTO_CARDS': True`` at ``/etc/findface-security/config.py`` and restart ``findface-security``. .. code:: sudo vi /etc/findface-security/config.py # create auto cards for unmatched clusters 'CREATE_AUTO_CARDS': True, .. code:: sudo systemctl restart findface-security.service There are no uploaded images on the :guilabel:`General` tab in the auto cards, so such cards are also called blank. The following filters do not apply to the blank cards: * :guilabel:`Faces` -> :guilabel:`Only with faces` * :guilabel:`Bodies` -> :guilabel:`Only with bodies` * :guilabel:`Cars` -> :guilabel:`Only with cars` .. rubric:: Completed cards Unlike auto cards, completed cards have uploaded images of a person's face and body or a car image. To separate auto cards and completed cards in the card index, use the :guilabel:`Filled` filter. To turn an auto card into a completed card, upload the same object's image to it and modify the card name.