Have been desperately wanting something like this so I can build an AI to detect when people don't pick up their dog shit in front of my gate. I am saved.
You can get the latest most powerful Raspberry Pi and connect any decent compatible camera, find a telescope adapter, and run something like Tiny-YOLO. That will save you around $200.
You probably want to mount a weather-resistant camera outside. You could buy an eg Reolink security camera for this fairly cheaply. [1] Then you can stream the video to a Raspberry Pi 4 + Coral USB accelerator, an nVidia Jetson nano, or the like and do analysis there.
[Edit: oh, I missed that the Vizy has an outdoor enclosure available. Still, it's extra $60 and is huge/ugly. The off-the-shelf IP camera + separate computer for analysis should be cheaper and IMHO better.]
I'm working on a Free Software security camera NVR system. [2] I have a pretty solid core recording engine now and am just thinking about what the API for on-NVR analytics plugins should look like. I'm imagining a Python API where you write some coroutine that can iterate through decoded video frames (either live or backlogged) and make calls to your favorite ML frameworks; add events, object detection tracks, and other metadata to the database; instruct that MQTT messages be sent; etc. If you're interested in using this kind of thing, I'd love to talk more.
[1] I used to recommend Dahua or Hikvision, but it seems they're actively supporting the Uyghur genocide via custom software, eg <https://www.latimes.com/business/technology/story/2021-02-09...>. I won't be buying any more cameras from them; I'm sure my boycott will devastate their business and cause them to reconsider their position immediately. As far as I know, Reolink is uninvolved, despite also being a Chinese company.
They said they use the standard Sony camera but did driver changes to support 300fps… I’m very surprised that the rpi can handle 300 frames per second! Maybe very low resolution? But still that’s quite impressive for the SoC!
Not sure, but at a glance it seems the OAK models are for developers to build up their entire use case from scratch, the Vizy _I think_ is pretrained with a lot of object recognition and has some tooling to take action based on that stuff built-in. So more of a purpose built device with some existing tooling vs an open-ended developer device that you bake the full product out yourself.
Love this. Moving to CM4 will make the form factor even better. If you're interested, here's an AI camera paired with a steerable hyperdirectional speaker that uses the Raspberry Pi and Google Coral: https://www.toutaudio.com/
I backed this back in the fall for a winter ship date, so I'd take the June ship date with a grain of salt.
Not quite as long as my Mycroft kickstarter which shipped a full 2.5 years after expected shipping (but they DID ship so kudos to them) but yeah, hardware etc seems to always hit way more snags then expected
If you throw in a classifier for detecting dog poop, and ideally, urine, I will buy five of them, place them around my home, and ensure the floors are clean before sending an API call to start my robotic vacuum. Thank you.
Well, you can do some basic things with this but honestly RPi4 is pretty much underpowered CPU for any serious AI. You can run some optimized networks probably even 200 fps like TinyYOLO linked below but it will always be a tradeoff between accuracy and hardware capabilities.
If you want AI you'd better consider Jetson or figure out some other DNN accelerator.
That's the Raspberry Pi Camera v2, however. It's also a Pi Zero which has some limited ability to run simple models, but it takes a while.
The Vizy has a custom high resolution camera special built for this platform that runs at 120 frames a second, not that it can detect things that fast. It also has a USB C port to connect a Google Coral device.
What I would really love is a camera looking out each side of my house and one upwards, looking at both ground and sky. Train it over the span of a year. And then notify me whenever something novel happens.
Beautiful sunset? Let me know. Strange car parked in front of my house? Let me know. Neighbours house on fire. Backyard intruder. Flooding. Etc. Anything sufficiently new that the camera hasn’t seen before.
The problem is that something as ambiguous as you described requires human-level AI.
But if you could accept portions of it, you could build a detector for unusual vehicles (would yield a lot of false alarms). And a detector for beautiful sunsets. A system that would recognize individuals by gait and be trained by you for specific authorized persons. A detector for water on the ground.
It's possible to just detect any movement or significant change in the scene, but that would yield quite a few events that were actually not interesting. Like birds landing.
There's no reason for outlier detection to require human-level AI. It's probably doable with prediction on different semantic levels, and a lot of calibration.
One of my pandemic projects was a Pi4 with HQ camera to detect/ID helicopters flying by my building, and also create sunrise/sunset videos and post them to twitter (https://twitter.com/dcskycam).
I set up the camera and used an OOB object detection model which works well enough. Also trained custom classifiers for helicopters after I had enough training data (work in progress for some aircraft types).
Also consider that some of the things you mention, a camera is not the best sensor for the task.
I am working on something like that. Use computer vision to detect anomaly. If you are interested you can subscribe a newsletter to get notified when the feature is out at ai-cam.app
a few years back I wanted to do something like this with an automated flow where if an in car camera detects parking enforcement it will call the city parking api and pay for the next n minutes.
Why can I buy a 30mp trail camera with motion sensor and wifi for $70 but I cant buy a 30mp camera that connects to my computer over usb for that cheap.
because customer support is a big hassle. sony is one of the few sensor manufacturers left and they would rather only deal with manufacturers than hobbyists doing god-knows-what. you can get them, though.
arducam makes a cute little accessory board and sells kits with sensors pre-installed, and will also quote the more uncommon sensors for you if you send an email. https://www.arducam.com/docs/camera-breakout-board/
but of course, in most cases, these manufacturers would prefer that you buy a finished camera. there is really not much you can do with a bare sensor that isn’t easier with a consumer product, especially if you want to put a lens on it.
It's interesting I was saying the other day to my wife that Google home and the like needs some sort of an AI camera to truly be more helpful and she was aghast at the idea. Maybe we need something like this with a home server so that it is not in danger of being abused.
Piggy-backing on this topic -- I'd love to have a set (up to a dozen) of cheap devices watching the ground around our house, that could detect primarily, or even exclusively, snakes. I'm in regional Australia, so snakes near abodes are something we want to know about.
Naive motion detection doesn't work, as their total volume within an image is tiny. From what little I can find of people trying to do this, AI/ML struggles, as snakes tend to move slowly and look an awful lot like a stick.
> If you’ve tried getting your device on the Internet, you’ll know that it’s typically not very easy.
That is true. Doing that in a secure and responsible way is really hard.
> Vizy’s software makes it really easy — it creates connections with public servers and provides you with a public URL that you can share with friends, family and colleagues.
...what if I don’t want my camera feed to be public?
> Access to the servers doesn’t require sign-up or monthly fees. Simple! You can then access your Vizy from practically anywhere with practically any device.
Mmm... so a free one click service that puts your video stream live on the internet?
What could go wrong?
Doing this properly is a hard problem, but I get zero confidence from reading this that they a) have the competence to do it or b) will continue to maintain it as a free service.
Given that big name companies get hacked when they’re trying very hard not to be, I think there some cause to think this is a an anti-feature for this product.
> DO NOT RUN THIS VERSION OF NGROK (1.X) IN PRODUCTION. Both the client and server are known to have serious reliability issues including memory and file descriptor leaks as well as crashes
Guess what?
Turns out doing this is harder than it looks.
So like... I get the point your were trying to make, but it’s actually harder than it looks, and Vizy hasn’t convinced me their service is secure.
Don’t advertise your product as having every feature under the sun like, it’s so easy, we did everything!
All it shows is you went features > quality in your product.
> DO NOT RUN THIS VERSION OF NGROK (1.X) IN PRODUCTION
I don't see that anywhere. Even if it is somewhere, it's not ironic. Ngrok is used for all sorts of stuff. Stream redirection to hosted services is a thing for ease of use to get going with play of a product.
The point is that making it easy makes it public sometimes, which is fine if the use cases aren't arbitrary made up to justify a worrisome argument. It it very unlikely an agent is going to penetrate and exploit one of these cameras through such a service. Squirrels don't need to be secured. Other things do, so reconfigure!
If you have a use case...a real one...then run this locally. The inventor and I are both privacy advocates. Your argument is cherry picked and overlooks the obvious on-premise use of a Raspberry Pi! :)
In all seriousness, I get what you are talking about, but being adamant dog poop use cases must be secured is pointless. Seriously, if you have a secure use case for this it does NOT have to be streamed to some service. The service is there for squirrels, not secure deployments.
Good project idea; the demand is clearly there. I could see myself buying a few.
The same can also be accomplished for $4 with an old iPhone and the AirBeam app by Appologics. Just point an AI capable device to the video feed or auto sync snapshots with the dropbox feature.
The app has some quirks though. Vizy seems like it might be more reliable.
Click on the Pre-Order link. There is a tonne of peripherals and "stuff" you can add to it. This is a very impressive Kickstarter campaign. It looks like everything is of higher quality than you would expect.
While I believe this is interesting project, I got really distracted by the PR around it. "scientist love flow chart" is like talking to babies and making fun of science at the same time. The fake scientist in all pictures ... probably I am not the target audience here.
61 comments
[ 3.0 ms ] story [ 131 ms ] thread[Edit: oh, I missed that the Vizy has an outdoor enclosure available. Still, it's extra $60 and is huge/ugly. The off-the-shelf IP camera + separate computer for analysis should be cheaper and IMHO better.]
I'm working on a Free Software security camera NVR system. [2] I have a pretty solid core recording engine now and am just thinking about what the API for on-NVR analytics plugins should look like. I'm imagining a Python API where you write some coroutine that can iterate through decoded video frames (either live or backlogged) and make calls to your favorite ML frameworks; add events, object detection tracks, and other metadata to the database; instruct that MQTT messages be sent; etc. If you're interested in using this kind of thing, I'd love to talk more.
[1] I used to recommend Dahua or Hikvision, but it seems they're actively supporting the Uyghur genocide via custom software, eg <https://www.latimes.com/business/technology/story/2021-02-09...>. I won't be buying any more cameras from them; I'm sure my boycott will devastate their business and cause them to reconsider their position immediately. As far as I know, Reolink is uninvolved, despite also being a Chinese company.
[2] https://github.com/scottlamb/moonfire-nvr
EDIT: Actually I just saw an article that I believe says 244 fps for Tiny YOLO on R Pi.
Bastards. /s
Not quite as long as my Mycroft kickstarter which shipped a full 2.5 years after expected shipping (but they DID ship so kudos to them) but yeah, hardware etc seems to always hit way more snags then expected
Edit: there is a market! https://news.ycombinator.com/reply?id=26916974&goto=item%3Fi...
Edit: Found the treasure! https://www.kaggle.com/mikian/dog-poop
If you want AI you'd better consider Jetson or figure out some other DNN accelerator.
https://www.nvidia.com/en-us/autonomous-machines/embedded-sy...
The Vizy has a custom high resolution camera special built for this platform that runs at 120 frames a second, not that it can detect things that fast. It also has a USB C port to connect a Google Coral device.
Beautiful sunset? Let me know. Strange car parked in front of my house? Let me know. Neighbours house on fire. Backyard intruder. Flooding. Etc. Anything sufficiently new that the camera hasn’t seen before.
Is there anything for that?
But if you could accept portions of it, you could build a detector for unusual vehicles (would yield a lot of false alarms). And a detector for beautiful sunsets. A system that would recognize individuals by gait and be trained by you for specific authorized persons. A detector for water on the ground.
It's possible to just detect any movement or significant change in the scene, but that would yield quite a few events that were actually not interesting. Like birds landing.
One of my pandemic projects was a Pi4 with HQ camera to detect/ID helicopters flying by my building, and also create sunrise/sunset videos and post them to twitter (https://twitter.com/dcskycam).
I set up the camera and used an OOB object detection model which works well enough. Also trained custom classifiers for helicopters after I had enough training data (work in progress for some aircraft types).
Also consider that some of the things you mention, a camera is not the best sensor for the task.
https://www.amazon.com/Victure-Activated-Waterproof-Detectio...
arducam makes a cute little accessory board and sells kits with sensors pre-installed, and will also quote the more uncommon sensors for you if you send an email. https://www.arducam.com/docs/camera-breakout-board/
you can also find quotes from other suppliers. sony does full-frame and medium format sensors wholesale, and they’re available through distributors. https://www.sony-semicon.co.jp/e/products/IS/camera/product....
but of course, in most cases, these manufacturers would prefer that you buy a finished camera. there is really not much you can do with a bare sensor that isn’t easier with a consumer product, especially if you want to put a lens on it.
Does it use specific hardware, or does it run on the generic ARM cpu of the RPi?
Naive motion detection doesn't work, as their total volume within an image is tiny. From what little I can find of people trying to do this, AI/ML struggles, as snakes tend to move slowly and look an awful lot like a stick.
Any pointers would be fantastic.
That is true. Doing that in a secure and responsible way is really hard.
> Vizy’s software makes it really easy — it creates connections with public servers and provides you with a public URL that you can share with friends, family and colleagues.
...what if I don’t want my camera feed to be public?
> Access to the servers doesn’t require sign-up or monthly fees. Simple! You can then access your Vizy from practically anywhere with practically any device.
Mmm... so a free one click service that puts your video stream live on the internet?
What could go wrong?
Doing this properly is a hard problem, but I get zero confidence from reading this that they a) have the competence to do it or b) will continue to maintain it as a free service.
Given that big name companies get hacked when they’re trying very hard not to be, I think there some cause to think this is a an anti-feature for this product.
Sure worrying is a thing but this is to build what you want; private or public!
> DO NOT RUN THIS VERSION OF NGROK (1.X) IN PRODUCTION. Both the client and server are known to have serious reliability issues including memory and file descriptor leaks as well as crashes
Guess what?
Turns out doing this is harder than it looks.
So like... I get the point your were trying to make, but it’s actually harder than it looks, and Vizy hasn’t convinced me their service is secure.
Don’t advertise your product as having every feature under the sun like, it’s so easy, we did everything!
All it shows is you went features > quality in your product.
I don't see that anywhere. Even if it is somewhere, it's not ironic. Ngrok is used for all sorts of stuff. Stream redirection to hosted services is a thing for ease of use to get going with play of a product.
The point is that making it easy makes it public sometimes, which is fine if the use cases aren't arbitrary made up to justify a worrisome argument. It it very unlikely an agent is going to penetrate and exploit one of these cameras through such a service. Squirrels don't need to be secured. Other things do, so reconfigure!
If you have a use case...a real one...then run this locally. The inventor and I are both privacy advocates. Your argument is cherry picked and overlooks the obvious on-premise use of a Raspberry Pi! :)
In all seriousness, I get what you are talking about, but being adamant dog poop use cases must be secured is pointless. Seriously, if you have a secure use case for this it does NOT have to be streamed to some service. The service is there for squirrels, not secure deployments.
> The inventor and I are both privacy advocates.
...
Well, you've certainly sold me on avoiding your product with that.
> I don't see that anywhere.
I didn't find it on the website, but I did find it on the GitHub:
https://github.com/inconshreveable/ngrok
The same can also be accomplished for $4 with an old iPhone and the AirBeam app by Appologics. Just point an AI capable device to the video feed or auto sync snapshots with the dropbox feature.
The app has some quirks though. Vizy seems like it might be more reliable.