panoramic / fisheye / 360 degree cameras and securityspy?
  • I've recently started using SecuritySpy for a 5MP IP camera and am planning for further expansion of my installed cameras.

    i've been looking at adding some "fisheye" 360 degree cameras, specifically the Mobotix Q24, the Axis M3007-PV, and the Vivotek FE8172V. These cameras are similar in some respects, but IIUC they differ with regard to how "dewarping" of images is handled.

    They are all listed as supported cameras for Security Spy, but I wonder if someone can share some additional detail on what level of support Security Spy provides. Specifically:

    1) Does SecuritySpy perform the dewarping itself, or does it require the camera to dewarp the video before it can be recorded?
    2a) If SecuritySpy does not perform the dewarping itself, how does this work with the Vivotek which does not have dewarping support built into the camera itself?
    2b) If SecuritySpy does handle dewarping itself, is this prior to recording, or is it during playback through the Browser?
    3) Can SecuritySpy export a dewarped video stream?
  • Currently SecuritySpy does not have a feature to dewarp fisheye images; SecuritySpy will capture the video exactly as it is received from the camera. We are considering adding such a feature in a future update, although I can't say for sure if/when this will happen. If the camera itself can dewarp the images before sending them to SecuritySpy then that is the ideal solution.
  • Thanks, Ben, for getting back to me so quickly!

    The tradeoff, AIUI, is that the dewarped images don't cover the full field of view of the fisheye camera--so by recording only the dewarped images all the data is not being captured.

    OTOH it seems every fisheye camera uses a different dewarping library, so I understand why SecuritySpy works the way it does. Is it feasible for a user (like me) to write some Applescript glue to integrate SecuritySpy to a vendor-specific dewarping library?
  • You may very well lose a bit of some of the of the edges of the image when it's de-warped, however it's the edges that are the most distorted and therefore the least useful parts of the image anyway. So I don't know of a compelling reason why it would be advantageous for the camera to transmit a warped image to the recording software, rather than transmitting a de-warped image. In fact I would have thought that the latter is better, because the processing is done in the camera rather than using the computer's CPU.

    I think you're right that different cameras, having different lenses, will use different de-warping routines to best process the images. In addition, vendor-specific libraries seem to come with license agreements that forbid using them with other brands of IP cameras. So I would rather implement some kind of SecuritySpy-specific "universal" de-warping code, rather than use any vendor-specific libraries.

    Unfortunately I don't think it would be possible to use AppleScript in the way that you describe as AppleScript can't have direct access to the video stream.
  • thanks for clarifying Ben.

    the only remaining unanswered question i have with regard to SecuritySpy and fisheye cameras is: what about those cameras like the Vivotek FE8172V which do not have built-in dewarping capabilities?

    IIUC, this camera and others like the GeoVision FE420 rely on client-side dewarping e.g. in the form of an ActiveX control, manufacturer-specific SDK, or NVR-specific plug-in (Vivotek offers one for Milestone) in order to produce rectilinear projected images.

    Does this mean I would have to use a different NVR or playback solution for these fisheye cameras, or is there some other way for me to create a 'plug-in' for SecuritySpy which used the relevant SDK? or is it best to just wait for SecuritySpy-specific universal dewarping support?
  • Unfortunately it's not possible to make some kind of plugin for SecuritySpy to achieve this. Currently, SecuritySpy would capture the warped fisheye image. Although maybe not ideal, this in itself may in fact be very useful footage to have, so you may not feel you need a different software solution. But I do understand that ideally SecuritySpy would have its own de-warping feature. I'll see what I can do.
  • I just got the Vivotek FE8172V. Haven't installed it yet because i need to run some experiments to determine the best placement. Initially I was disappointed by the lack of camera side unwrap. But in the end I'd rather record the original stream and only unwarp when reviewing. To that end, I cooked up a OpenCL kernel with hardcoded constants that I plugged into one of our in-house app with very good results. I do not know if SecuritySpy uses OpenCL, but if it does, that might be a good way to incorporate unwarping, particularly in the video browser.

    PS: Thanks Ben for SecuritySpy. I've deployed it in both my business and my home. Love it.
  • Hi Louis, thanks that's an interesting suggestion. SecuritySpy doesn't currently use OpenCL but I will investigate that possibility. If you wouldn't mind emailing us some or part of your solution that would be very helpful. No worries if you don't want to do this.

    Thanks for your kind words about SecuritySpy, glad you like the software!
  • Sure, but I'm a bit self-concious about code I hacked in 20 minutes.... I'll cleanup and send you a copy. I could only try it on a recorded clip and not on a live stream as I do not know how to grab frames from such a source. (our in-house app grabs from movies, IEEE-1394, Quicktime and DeckLink from BlackMagic). I'll be happy to contribute.
  • Louis,

    Would you be willing to share your OpenCL code? I've also got a Vivotek FE8172V and would very much like to be able to dewarp its output for use in home automation. Please contact me: Ryan.Melena at gmail dot com
  • Is see that this is an old post, but has anyone tried a fisheye camera like the Hikvision DS-2CD6362F-I? One with de-warping? If so, what is it's performance impact on the mac server, given it's broad coverage area? Was it useable?
    Thanks.
  • I'm wondering the same - has anyone got feedback on any fisheye cameras?
    Is there an update on when de-warping might be available? Or the ability to select smaller sections of the field of view and show effectively as different de-warped images? This video shows how the Dahua software does it:
  • Most panoramic IP cameras these days can do the dewarping in-camera before sending the feed(s) to SecuritySpy. Certainly the Axis panoramic cameras all do this, though I'm not 100% sure about the Dahua. Typically you would select a different "Input or stream number" in SecuritySpy (under Prefs -> Cameras -> Device) for multiple different views - some of which would be dewarped in certain ways (either the whole image, or perhaps the four corners of the image). Do you have one of the Dahua cameras to test with by any chance?
  • No - I was hoping to work this out before potentially purchasing one! I don't really have the need to spend as much as an Axis camera would cost, hence the reason for looking at the Dahua
  • I'm not sure about the Dahua, it's specifications aren't clear on this issue. Perhaps have a look at the Vivotek FE8174V - its specifications say "Support Local or Client Side Dewarping", which indicates that either the camera, or the viewing software, can do the de-warping.
  • Hi Ben - I've finally got one of the Dahua fisheye cameras, and unfortunately it seems they don't have on-board dewarping - only the $700+ models have that. Is there any update on when dewarping will be available in security spy?
  • Pete:

    Based on Ben's recommendation last year I bought the Axis M3027-PVE 5MP panoramic camera from B&H and am happy with it. It does what I believe you're calling dewarping (and has something like 10 different presets, at least a few of which will likely be useful). I have two of these cameras that are soffit-mounted outside. Here's the discussion from April 2017: https://www.bensoftware.com/forum/discussion/comment/6044#Comment_6044

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!