This project marks the first POC of the FireAssist project, which does not reflect the current status of the project, which is confidential in nature. The aim of the project was to automate the score and accuracy calculation from a soldier's firearm usage on a π― "bullseye" target. This repository serves as a proof-of-concept for the image segmentation part of the pipeline (see ASCII diagram below for more details).
The project was split into two main parts:
- Mask segmentation -
This repository - Bullet hole detection and decision inference (BulletsAPI) -
CONFIDENTIAL
The main pipeline was structured in this format:
βββββββββββββββββββββββββ βββββββββββββββββββββββββ
βββββββββββββββββββββββββ β Firing score and β βVerdict on performance β
β Raw Image of β β accuracy β βand possible issues forβ
β Target + Environment β β β β future action β
βββββββββββββ¬ββββββββββββ βββββββββββββ²ββββββββββββ βββββββββββββ²ββββββββββββ
β β β
βMask R-CNN inference β β
β βββββββββββββββ¬ββββββββββββββ
βββββββββββββΌββββββββββββ β
β Segmented Image β Use the provided β Use a multi-class
β β formula to β classifier ML model
β(Skewed circle target) β calculate score β to get verdict on
βββββββββββββ¬ββββββββββββ β firer (e.g. need
β β training, possible
βImage processing and β injury, etc.)
βco-ordinate math β
β β
ββββββββββββββΌβββββββββββββ βββββββββββββββ΄ββββββββββββ
β Square Image β (Confidential part starts here) βBullet hole co-ordinates β
β βββββββββββββββββββββββββββββββββββββΆ on square image β
β(perfect circular target)β Bullets API scans the image, βββββββββββββββββββββββββββ
βββββββββββββββββββββββββββ and runs object detection to
find bullet holes
The repository itself is mostly code by matterport, but the files of concern are:
- Main iteration and testing - scratchpad notebook
- Final POC of how the segmentation model would work
- Simple FastAPI server to act as a microservice
Please keep in mind that at the time of the last changes done to the file, the training set was too small, so the data may be prone to overfit. It served well as a proof-of-concept nonetheless. The project was likely put through more iteration and refined for the stakeholders' use by now, but I do not have visibility of that.
Below, the source project by
matterportis added for quick reference: https://github.com/matterport/Mask_RCNN