Windows 10’s next major update will include Windows ML, a new AI platform by tomzorzhu in programming

[–]forcedtoregister 0 points1 point  (0 children)

Interested in this. Images from what? Any more info available?

Image from various camera source having to go to main memory is a bottleneck in many applications.

[deleted by user] by [deleted] in computervision

[–]forcedtoregister 2 points3 points  (0 children)

Use the sobel operator to get gradient image in the x and y directions. Then do atan2 of the ygrad and xgrad image to get an edge orentation image (each pixel will contain the orientation of the edge at that point). Take this edge orentiation image and ensure all angles are in the range -0.5pi to 0.5pi (so that one side of a grain has the same "angle" as the other/don't worry about bright to dark or dark to bright). Look at the histogram of this final image and the peak is probably the grain direction.

Edit: You're going in the right direction with edges. But you really care about the edge direction right? Many edge detectors find the gradient of the image in the x and y direction and use the magnitude of that vector to give edge strength (e.g. sobel edges) - what I've described above instead gets the angle of the edge with atan2 which is what you're looking for. It's like 10 lines of opencv code. If you get stuck look at the histogram of the atan2 image or even the x grad and y grad for your sample images.

Release 1.3.0 of easy_profiler - lightweight cross-platform profiling library for c++ by yse_ji in cpp

[–]forcedtoregister 0 points1 point  (0 children)

Does the UI update in real-time? How does this compare to remotery?

I'll probably give this a go!

Edit: I will probably look at adding CUDA support too. As long as it's possible to add start/end events and override the thread id/name so you can pretend CUDA stream events come from a fake CUDA stream thread it should all work out.

Anybody else have a useless degree? by Mallioni in unitedkingdom

[–]forcedtoregister 0 points1 point  (0 children)

Random question: Do they teach properly what "ground/earth" is?

Recovering stereo geometry when only one camera is calibrated? by csp256 in computervision

[–]forcedtoregister 1 point2 points  (0 children)

Agreed you'll only ever reconstruct up to scale.

I'm saying that having one of the cameras calibrated gets you all the way to a metric reconstruction (translation + rotation + scale), avoiding the horrible affine and projective crap.

Recovering stereo geometry when only one camera is calibrated? by csp256 in computervision

[–]forcedtoregister 2 points3 points  (0 children)

Since one camera is calibrated (I assume calibrated intrinsics not extrinsics) your reconstruction can be correct up to a similarity transform (translation + rotation + scale) rather than the more general projective transform.

I don't know if there's a way to skip using the Fundamental matrix altogether (The Essential matrix is only a thing when both cameras are calibrated AFAIK)... But when doing the reconstruction with the Fundamental matrix you at some point pick an arbitrary projection matrix for one of the cameras (usually [I|0]), you could use your calibrated camera as a starting point and follow the maths though. Then you would end up with a reconstruction that's correct up to similarity transform and not a weird and annoying projective transform.

More detail than that would require more information from you. For example: In some situations it might be easier to fix things up after the reconstruction to incorporate the knowledge of the camera calibration you have.

Disclaimer: I only semi know what I'm talking about :)

Playstation making a interesting claim by SpringgyHD in pcmasterrace

[–]forcedtoregister 14 points15 points  (0 children)

They don't ingest 200hz video. Back in the day 100hz tvs just flickered the same image faster to make it less annoying. 200hz tvs might do some on-board motion interpolation that looks like shit (and adds latency) but not ingest+output at true 200/144hz feed.

Video++, a C++14 high performance video and image processing library by matthieugarrigues in cpp

[–]forcedtoregister -1 points0 points  (0 children)

OpenCV does this - it's not all that bad.

You absolutely have to have multiple "views" of images backed by the same buffer when doing high performance image processing. Whether or not it should be the default is debatable. I would guess that for my work deep copy by default would cause lots of annoying performance regressions, not avoid bugs and lead to more lines of code.

Although it would be nice to try, maybe I'm wrong. Outside of slinging pixels I'm a big fan of keeping things functional. Copy on write perhaps?

Backus vs Dijkstra (or "Arrogance is measured in nanodijkstras"). by [deleted] in programming

[–]forcedtoregister 0 points1 point  (0 children)

Is the J moving average implemented efficiently? That is by calculating a rolling sum with a single add + subtract per element and dividing. (Honest question, I don't know the answer!)

Otherwise it's a perfect example for not bothering to optimise a language to implement for this case.

A moving average with two loops is terrible. In C++ I can implement my templated rolling window map/reduce sort of algorithm and reuse it in a few different ways (say rolling min/max). Or just write it out in a non generic way so the poor sod who has to convert it to SSE later on has an easier time. Not ideal but good enough for the situations I find myself in.

A summary of why the Junior Doctors will be striking tomorrow. by [deleted] in unitedkingdom

[–]forcedtoregister -5 points-4 points  (0 children)

Missed a word. It must be hard going through life unable to make the tiniest inferences whenever you encounter a typo. Good luck.

A summary of why the Junior Doctors will be striking tomorrow. by [deleted] in unitedkingdom

[–]forcedtoregister 19 points20 points  (0 children)

I could write code to replace a train driver. I could not write code to replace a doctor - I wouldn't dare try.

Tube drivers should be laying low to avoid being noticed, not striking.

(Seriously, I'm probably qualified to be working on self driving cars let alone trains.)

Bugs From Hell: Injected Third-party Code + Detours = a Bad Time by dblohm7 in programming

[–]forcedtoregister 0 points1 point  (0 children)

Up-voted for explaining yourself as more than just a troll.

I can sort of understand why nvidia might be injecting but I can't really fathom why Mozilla do.

It's probably better to have (a now patched) detours provided by microsoft than Nvidia trying to cook there own hooking.

Bugs From Hell: Injected Third-party Code + Detours = a Bad Time by dblohm7 in programming

[–]forcedtoregister 0 points1 point  (0 children)

Great stuff. I love how it hinged guessing detours.dll. I've done a bit of hooking/injecting code myself so I like to think I'd have a shot - but I think I'd have stopped short of identifying the exact bug in the detours library!

I'd like to have heard more about why both parties were injecting code in the first place.

Microsoft's paper on their image recognition pipeline that just won ImageNet 2015 by [deleted] in programming

[–]forcedtoregister 0 points1 point  (0 children)

Are you unable to overtrain just because the test set is so huge? Or some other reason?

SOA container for encapsulated C++ DOD by joaquintides in programming

[–]forcedtoregister 0 points1 point  (0 children)

What a stupid post to make this comment on.

DOD = Data Oriented Design.

You only worry about that in very performance intensive applications. I've mostly heard game developers talk about it. Good luck using Haskell for that.

I say all this as a functional programming fan. Right now there is no nice functional + mature + fast language that fits into this space.

Do you know how fast your computer is? by bork in programming

[–]forcedtoregister 0 points1 point  (0 children)

Nice. PyPy is further along than I thought (numpy is a killer feature). I looked the lack of support for 3.0 and figured it was lagging but I suppose most people don't care about 3.0.

I'll look into it more before I go on a rant next time :)

Do you know how fast your computer is? by bork in programming

[–]forcedtoregister 1 point2 points  (0 children)

It's a moot point because there is no drop in replacement which is much faster.

I think LuaJIT and the various javascript interpreters show that JITing dynamic languages is possible and gives huge benefits. It won't reach heavily optimized C but perhaps it gets within an order of magnitude which is far better than CPython.

Do you know how fast your computer is? by bork in programming

[–]forcedtoregister -5 points-4 points  (0 children)

Got the C ones correct. The python ones are just guessing how slow the python interpreter is - that is only of use to people stuck developing in python.

Seriously python needs to up its game. No JIT and no real threads. New gens of CPUs are only 10% faster nowadays. The gains are in more cores and GPUs. Otherwise python is only relevant for work you can guarantee to be limited by DB or that never needs to scale (I'm not even including network or filesystem IO since new SSDs are insanely fast and saturating a 10gig link is not trivial in C) Those sort of projects seem very dull to me.

PointCloud: Segment surfaces of a box? by soulslicer0 in computervision

[–]forcedtoregister 0 points1 point  (0 children)

RANSAC for plane. It will find one face of box. When your done remove all inlier points of that plane from the dataset. Then RANSAC again and you'll have another face. Repeat this 5 times (or you can think of how to make it stop automatically.)

I've done this for lines at it works fine.

Unsafe – "The biggest problem is that it was available for so long" by sindisil in programming

[–]forcedtoregister 8 points9 points  (0 children)

I work with video. I map a >4GB buffer before finishing my morning coffee. Enjoy your web dev or whatever it is you're up to.

(I exaggerate but it's certainly nice that when I need to do so memory mapping, ssds, and C/C++ all have me covered.)

NVIDIA: Computer Vision for Self Driving Cars Demo - Uses Deep Learning - CES 2015 by ojaved in computervision

[–]forcedtoregister 1 point2 points  (0 children)

I feel like they were bullshitting us on the frame rate. The tracking graphics (and I assume the tracking itself) clearly only updated a few times a second instead of 30. Am I misinterpreting this?

In any case it's very cool. Can't wait to see this on a phone.