
Sod – An Embedded Computer Vision and Machine Learning Tiny C Library - symisc_devel
https://sod.pixlab.io/
======
eggy
I was interested until I saw you have to purchase something to train your own
models. I am wondering how this compares to Darknet by Joseph Redmon [1]. You
can do most of what I see on the Sod site, and train your own models. It's in
C too.

[1] [https://pjreddie.com/darknet/](https://pjreddie.com/darknet/)

~~~
qchris
Just a quick heads-up that Joseph Redmon isn't working on the development on
Darknet any longer, and the YOLO fork by AlexeyAB [0] (now on YOLOv4) is one
people should also consider using moving forward[1].

[0] [https://github.com/AlexeyAB/darknet](https://github.com/AlexeyAB/darknet)

[1]
[https://mobile.twitter.com/pjreddie/status/12538910781821992...](https://mobile.twitter.com/pjreddie/status/1253891078182199296)

~~~
eggy
Yes, I have been following darknet for a while now. I haven't tried YOLOv4
yet. Any comments on what SOD brings to the table in comparison to darknet?

~~~
qchris
Honestly, I'm not sure. It seems like they cover slightly different fields,
despite having some overlap. AFAIK, Darknet doesn't natively do a bunch of the
image processing work that Sod can do, like edge detection with Canny, because
if you wanted that, you'd just use OpenCV.

I'd imagine that based on the licensing, this is probably closer to the open-
sourcing (well, sort of, since the commercial applications and GPU training
requires a paid license) of an internal tool that the company is using on the
backend of their own API-driven machine learning business. So, it covers some
things that Darknet isn't really designed to do, since real-time object
detection isn't the main area they're really interested in.

~~~
eggy
Real-time object detection is what YOLO does and darknet implements it, but I
see where you are going with the edge detection in SOD vs. darknet. You add in
OpenCV if you want to use it.

------
qubex
Knowing that some schools and universities are testy to use GIMP because it’s
a derogatory term, I’m wondering how “SOD” will fare. “Sod off” and “you’re a
real sod” are not exactly terms of endearment and are very much still in
current usage (particularly by the kind of people who might be offended by
using something that refers to them).

~~~
emmanueloga_
I don't know, I haven't never hear "sod" as slang before, had to check urban
dictionary [1]. Maybe I'm not streetwise enough :-)

1:
[https://www.urbandictionary.com/define.php?term=SO%20D](https://www.urbandictionary.com/define.php?term=SO%20D)

~~~
mantap
It's also in the real dictionary.
[https://dictionary.cambridge.org/dictionary/english/sod](https://dictionary.cambridge.org/dictionary/english/sod)

It comes from sodomy. It's interchangeable with fuck in many contexts.

~~~
Y_Y
Except it's much milder, there's no problem with saying "sod off" on tv during
the day, for example. Apparently the British Communications Regulator,
Ofcom[0], sees it as "Mild language, generally of little concern", whereas
_fuck_ is "Strongest language, unacceptable pre-watershed. Seen as strong,
aggressive and vulgar. Older participants more likely to consider the word
unacceptable."

[0] [https://www.mirror.co.uk/news/uk-news/read-what-ofcom-
thinks...](https://www.mirror.co.uk/news/uk-news/read-what-ofcom-
thinks-47-8987533)

------
emmanueloga_
It seems like they go out of their way to hide the real identity of the ppl
behind this (feels like a solo developer). Why would someone do this?

[http://symisc.net/contact.html](http://symisc.net/contact.html)

~~~
n_t
It is indeed interesting! I had some use case in mind so I tried to find more
about company. sysmic is owned by Pixlab, but both have zero info about people
involved. Interestingly, even their linkedin page (../company/pixlabio)
doesn't lists any individual and given the work they are doing, I doubt it's
single person effort. Well, someone mentioned darknet project, looking into
that instead.

------
stefan_
So this is like the printer model, sell the printer (library) for free and
charge for the toner (model).

~~~
skanga
Can you develop your own models?

~~~
lcampbell
Doesn't seem like it. The GPU module required for training CNNs is sold
separately[1]:

> A GPU capable special SOD release which is not available to the public is
> required in order to train your own CNN model.

There are some bits included for training "RealNet" models[2] but I'm not sure
what those are or how they work. The documentation suggests that RealNet
models can be trained in reasonable timeframes with a CPU.

[1]
[https://sod.pixlab.io/cnn_train.html](https://sod.pixlab.io/cnn_train.html)

[2]
[https://sod.pixlab.io/c_api/sod_realnet_train_start.html](https://sod.pixlab.io/c_api/sod_realnet_train_start.html)

------
stbtrax
What kind of embedded processor is this meant for? cortex-m3 low level or more
like a cortex A class?

------
person_of_color
Click. No Q16.16. Close tab.

~~~
johanam
Can you elaborate what you mean by this?

~~~
baocin
"Q16.16" seems to refer to fixed floating point precision
([https://en.wikipedia.org/wiki/Q_(number_format)](https://en.wikipedia.org/wiki/Q_\(number_format\))).
The parent comment is unhappy that SOD doesn't support floats with 16 integer
bits and 16 fractional bits. I'm unsure why lack of support for 32 bit floats
is such a problem considering that SOD is suppose to run on such resource
constrained devices. Is there a particular domain where this is necessary?

~~~
boomlinde
_> "Q16.16" seems to refer to fixed floating point precision_

Floating is the opposite of fixed in this context. The GP is unhappy that it
doesn't support fixed point numbers of a common fixed point number format.

This is not just nitpicking, because the difference in time and implementation
cost between floating and fixed point can be huge on systems where floating
point operations aren't offloaded to a pipelined FPU. Fixed point arithmetic
on the other hand, even if your hardware doesn't support it directly, can
easily be implemented in terms of integers.

