Coder Social home page Coder Social logo

Comments (3)

mryel00 avatar mryel00 commented on August 20, 2024 1

The picture isn't needed anymore. I just wanted to check if it's an original v1, a fake v1 or maybe some other OV5647 sensor cam.

It's ofc completely fine to reach out for some advice from us, but I still have to always make sure that everyone reading something like this, knows that it's not something Spyglass is doing, but something on a lower level.
I learned that while supporting for crowsnest, as a lot of people draw wrong conclusions on some things, as they simply lack the knowledge in that field.

autofocus also didn't made any changes.

OV5647 sensors don't have autofocus afaik. We just added that option as a start parameter, because Spyglass was mostly intended for the v3 as it wasn't supported by crowsnest at that time.

As the compression artifacts get better with lowering the resolution (1296x972), it might be due to not enough processing power that it starts compressing the image to get the specified fps. Try to lower resolution or fps further down and see if it gets better.

Because you are using a Pi3B, I will also do some testing on that device, when I get time for it. I mostly used Spyglass on a Pi4.

from spyglass.

mryel00 avatar mryel00 commented on August 20, 2024

with "vr90" option

Maybe I just forgot about it, but what exactly do you mean with vr90? I guess you mean -or r90?
Anyway that doesn't matter here.

The second image looks like a very low bitrate. Overall Spyglass isn't processing the images besides, adding the exif header into the binary, if you use -or. This might lead to problems showing the image as libcamera recently added exif support themselves, but this shouldn't affect anything like your second picture.
We then send that image with a simple web server on requests.
If you now see compression like that it's most likely already happening before spyglass get's the picture, as you would just receive framedrops if your network would be too slow to receive the images.

We will look into it, if you can force some bitrate with picamera2 or maybe through libcamera controls.
But as you can see on the commit history, the development is currently on a longer pause due to personal life of both of us.
The development will resume in a few weeks, when I have more time again for everything.

It would be good, if you could provide following informations:

  • The Pi you are using
  • All your settings
  • The exact model of camera you are using
  • A picture of the front of the camera PCB
  • If you are using some custom code modifications or maybe another branch besides the main branch

Some other note about something I saw on that second picture, is the green line at the bottom (left). I saw already similar problems with camera-streamer, where you see that line primarily with WebRTC iirc. So there might be something up with the HW encoders of the Pis.

Another thing, that I didn't test yet much myself is using "non-default" resolutions, especially for those 4:3 sensors like the OV5647 and IMX219 (picam v1 and v2 respectively). libcamera-hello --list-cameras gives you four resolutions for the OV5647 sensor. None of those is 1920x1440. That might lead to cropping or other things. I will do some testing about that in future with my v2 cam, too.

So for now I leave this issue open until we have done more testing on the things I mentioned.

from spyglass.

AyrtonRicardo avatar AyrtonRicardo commented on August 20, 2024

@mryel00 thanks for replying so quickly, I came here looking for help, this is almost sure not be related to spyglass but I thought that maybe something I could pass to libcamera as a parameter would help :D

I'm in the middle of a print right now to test, but I tried to keep common ration while adding the resolution, but the result was the same as you see with the odd resolution.

My goal is to use the fov as wide as I can for the camera in vertical position as "squared" as possible.

  • Camera: https://www.amazon.de/-/en/gp/product/B095NQT3GJ
    • Very generic picam using ov5647 chip.
  • Settings below.
  • RPI 3 Model B 1GB
  • I can't take a pic right now, but I think the amazon images are good enough?
  • No custom code, I just pushed my changes here and since accepted I'm running main branch.
  • autofocus also didn't made any changes.
$ libcamera-hello --list-cameras
Available cameras
-----------------
0 : ov5647 [2592x1944] (/base/soc/i2c0mux/i2c@1/ov5647@36)
    Modes: 'SGBRG10_CSI2P' : 640x480 [30.00 fps - (0, 0)/0x0 crop]
                             1296x972 [30.00 fps - (0, 0)/0x0 crop]
                             1920x1080 [30.00 fps - (0, 0)/0x0 crop]
                             2592x1944 [30.00 fps - (0, 0)/0x0 crop]

Settings:

NO_PROXY="true"
HTTP_PORT="8080"
RESOLUTION="1600x1280"
FPS="15"
STREAM_URL="/stream"
SNAPSHOT_URL="/snapshot"
AUTO_FOCUS="manual"
FOCAL_DIST="0.0"
AF_SPEED="normal"
ORIENTATION_EXIF="r90"
TUNING_FILTER="ov5647_noir.json"

Currently running 1280x1600:
image
Which seems a little better, but it still way too much noise comparing to the first time the snapshot is made.(can't restart spyglass right now)

My camera position:
image

from spyglass.

Related Issues (20)

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.