Skip to content

Latest commit

 

History

History
89 lines (80 loc) · 3.9 KB

ROADMAP.md

File metadata and controls

89 lines (80 loc) · 3.9 KB

ROADMAP

New ideas, thoughts about needed features will be store in this file.

Done

  • Initial core

    • Integration with go-darknet !!!NOT NEEDED NOW!!!
    • Initial integration with gRPC
    • Initial integration with GoCV
    • Initial integration with GoCV MJPEG
  • go-darknet !!!NOT NEEDED NOW!!!

    • convert gocv.Mat to darknet.DarknetImage !!!NOT NEEDED NOW!!!
    • init neural network from configuration
    • prepare *.sh scripts to download yolov4.cfg and yolov4.weights files (also yolov3 avaible)
    • detect only targeted classes
  • GoCV

    • init gocv.VideoCapture
    • make separate goroutines for grabbing frames and feeding them to neural network !!!NOT NEEDED NOW!!!
    • make MJPEG server avaible as option
  • gRPC

  • vehicle detection

    • detect vehicles
    • crop vehicle near detection line and prepare gRPC structure if needed
    • speed estimation
  • added drawing options for tracker (conf.json)

  • Check memory leaking

  • github tags: godoc, go-report, tagnum, sourcegraph

  • integration with go modules

  • Integrate Kalman tracker

  • Extend configuration of conf.json file.

    • Allow to configure draw methods for each type of detected objects
  • Additional field 'targeted objects' (it's called 'detect_classes' actually) in odam.VirtualLine struct. After it's done odam.VirtualLine will be able to detect e.g. only pedestrians or only motorbikes

  • Move to full OpenCV (no go-darknet is needed since OpenCV does stuff). See #21

W.I.P

  • design: current BBoxes and text info on imshow()/mjpeg-server are...ugly
  • provide video examples to show what this software capable of.
  • gRPC
    • optional information about scaling source image
    • optional scaling track in pixel representation
  • codebase improvements (design, optimizations, clarifications and etc.) for example.
  • Tracking in convex polygon: <<=== Current state (30.08.2021) Almost Done with convex polygons
    • estimated time spent in polygon
    • estimated speed (via GIS 'mapper' technique)
    • objects filtering (same as with VirtualLine)
    • integrate into gRPC
    • convex polygons math
    • JSON configuration
    • store information about visited polygons somewhere
    • draw polygons
  • Virtual lines
    • Split ID and other additional information for next paragraph
    • Make additional information optional for sending via gRPC. Sometimes reciever-side already knows everything about lines and just need its IDs.

Planned

  • Stable core (need many tests as possible)
  • Extend conf.json for such settings as: color of virtual lines, color of boxes and similar stuff.
  • Front-end for editing conf.json
  • Exend gRPC-client set of attributes, which must be send to gRPC-server
  • Some kind of wiki
  • Logo
  • Contributing guidelines
  • pedestrian detection
    • detect pedestrians
    • count pedestrians
    • speed estimation
  • Implement SORT - https://arxiv.org/abs/1602.00763
  • github tags: travis
  • gRPC server-side for mutation and querying reference info
  • REST server-side for mutation and querying reference info (may be by code wrapping gRPC-based code?)
  • Analytics by each polygon / line
  • Drop analytics to REDIS / REST / gRPC?

Continuous activity

  • README
  • Memory profiling
  • ODaM itself
  • Roadmap itself
  • conf.json features