Started work on complete camera security system

Hi,

I’m new here so please bear with me. I am not sure if this is the correct place to post this, but I thought that this might be interesting to anyone who uses the AMB82-MINI cameras.

I’ve started building a surveillance camera solution that includes

  • Firmware for the camera with UI for configuration
  • A server that can record video and play it back
  • A new firmware flasher written in Go
    • a bit faster than the one that came with the SDK
    • comes with its own loader mini-app
    • also ported to JS so you can flash AMB82 boards from the browser
    • doesn’t require boot+reset buttons to be pressed on flashing
  • Firmware management on the server and OTA updates for cameras
  • Server can configure WiFi networks and credentials when flashing boards the first time

I haven’t started playing with the neural network bits yet, but those are next. I plan to split processing between camera and server so that the camera can do simple object/people recognition and the server can take care of heavier things like matching faces to embeddings etc.

Here are some screenshots:

This is the live-view

This is the replay view

Here is part of the config view for configuring individual cameras (the add camera button is somewhat superfluous as adding cameras is automatic when you flash them. They get the server address and the network credentials during the provisioning process)

Here is the firmware settings tab:

And here is the screen for flashing the AMB82 MINI from the browser, provisioning it with credentials and telling it where the server is

There is also an on-camera UI that can be used to configure the camera, but I had to skip the screenshot because there is a 5 image limit here.

I’m fairly new to this board so there are probably still some things that need ironing out. Also, as mentioned previously, all the neural network stuff is next. Plus additional integration interfaces and optimization of the video streaming (I have tested it for just 2 cameras and 5-6 consumers right now, but I suspect there is room for improvement).

Of course, I also have to add authentication, access control and I’ll have a look at whether the video streams from the camera to the server could perhaps be encrypted. I have no idea how this affects performance.

The entire thing can be shipped as a single binary. So you start the binary, it creates an SQLite database for its data, and stores video in the filesystem. Then you connect your cameras via USB the first time, flash and provision them, and after that you can flash them OTA. (You just need to set your server address and add some wifi networks and the cameras just connect automatically to the server).

The plan is to upgrade cameras automatically whenever I create a new firmware release for the AMB82.

I just thought I’d share this project here. Let me know if any of you find it interesting.

-Bjørn

:waving_hand: Thanks for posting!

For documentation, SDK resources, FAQs, and community guidelines, please visit: here

For commercial users, if you would like to have dedicated technical support or to connect with us, please fill in the Private User Form

Happy building with Ameba!


:waving_hand: 感謝您的分享!

如需查閱技術文件、SDK 資源、常見問題及社群指南,請參考: 這裡

若您是商業用戶,希望獲得專屬技術支援或與我們聯繫,請填寫 Private User Form (商業用戶表單)

祝您使用 Ameba 開發順利!