Git Product home page Git Product logo

mlnet.onnx.openalpr's Introduction

ONNX Object Detection + License Plate Detection

An object + license plate detection (from a video/image) solution, leveraging Open ALPR (.NET Framework) & ML.Net ONNX Detection (.NET Core).

Name Repository
Open ALPR Github Repository
ML ONNX Object Detection Github Repository

Getting Started

  • The startup project should be MLNetOnnxAlpr.SampleUi [Build x64]
  • Change the file in MainWindow.xaml.cs -> var videoFilePath = String.Empty; [Line 77]

Points of Interest

MS ML Onnx Object Detection
  • This is a modified version of Microsoft’s samples "OnnxObjectDetectionWPFApp" & "OnnxObjectDetection", leveraging TinyYolo2_model.onnx.
  • There were a few refactors / modifications on the overlay methods, in which it will remove overlapped overlays of identified objects.
  • I looked into adding the duc.onnx model yet was unable to get the bounding boxes correct Duc.
Open ALPR
  • The source has been in a rough state for the last few years based on the issues/comments yet the last public release was close enough to the sample to piece it together.
  • I attempted to rebuild with the latest source yet their build instructions were leveraged for VS15, and after creating a VM with the required dependencies / requirements the build still failed. (You might have more insight/luck.)
  • I appreciate the effort/time the team put into this, yet I'm giving you a head ups if you investigate their resources further.

Open ALPR requires dependencies not included / built into OpenAlprClient, the files are included on the build:

  <ItemGroup>
    <_CopyItems Include="$(SolutionDir)\MlNetOnnxAlpr.OpenAlprClient\Dependencies\**\*.*">
      <InProject>false</InProject>
    </_CopyItems>
  </ItemGroup>
  <Target Name="PostBuild" AfterTargets="PostBuildEvent">
    <Copy SourceFiles="@(_CopyItems)" DestinationFiles="@(_CopyItems->'$(OutDir)\%(RecursiveDir)%(Filename)%(Extension)')" SkipUnchangedFiles="true" OverwriteReadOnlyFiles="true" Retries="3" RetryDelayMilliseconds="300" />
  </Target>
.NET Core & .NET Framework woes
  • Yes, it's a .NET Core application calling a .NET Framework DLL which is quite bad, yet you could create an API / micro-service to pass the bitmap too and return the relevant information, for a production end-to-end solution.

Background

  • Had the idea with a colleague, using car dash cam(s) to determine the vehicle type/information, as well as log the license plate information.
  • Realized it was possible with this research publication Microsoft CNN-Automatic License Plate
  • Found a few projects by MicrocontrollersAndMore OpenCV_3_License_Plate_Recognition (the source is very rough yet functional)

Completed & Better Solutions / Alternatives

Resources

mlnet.onnx.openalpr's People

Contributors

clintmasden avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.