This project provides early warning by analyzing the action of people in the ship's cockpit.
According to statistics of IMO, in the past ten years, most ship accidents were caused by human factors.So we have this idea to ensure the navigation safety by AI techonoly. Although it is not sound and cannot be used on a commercial environment now,it is an excellent opportunity to explore the usage of computer vision based on Deep CNN.At the same time, it can help me to understand the performance of hundreds Net architectures of different papers.
The code of this project is dirty now.I may clean the code after I find my graduate mentor.:muscle: :muscle: :muscle:
PyTorch 1.4 +
torchvision 0.6.0 +
OpenCV
CUDA >= 9.0
if you want to try remote monitoring
ffmpeg is necessary and an OSS Instance of Cloud Server is required.
collect_human_pose_label.py is used to collect the action information by Human Pose Estimation Algorithm.
demo.py is used to show person detection,Instance segmentation and Action analyse algorithm of my system.
inference.py is used to fast detection without visualization and send the visual information by TCP/IP or UDP.
- Person detection and human instance segmentation.
- Use Human Pose Estimation Algorithm to generate template actions.
- Quantify the difference between two actions by visible-L2 which is I proposed to slove the problem of recognition of human actions.You can see the detail of visible-L2 in the next section.:satisfied::satisfied:
- Analyze the crew is on the right position or not.
- Track the movement of people by MaskIOU.
- Use segmentation technology to capture valuable pixels and reduce the data which is transported by network.
- Use RLE(run-length encoding) to save person mask image.
- Use HashTable to match the template action faster,the key of HashTable is the location of person and the value is the output of Human Pose Estimation Algorithm.
- Use ML technology to discover the danger of ships by time,boat number,person actions and so on.
- Use NN pruning technology to accelerate the inference stage.
- Clean the code and try to give an end-to-end solution.
- Support more backbone and more model head.




