Thread overview
DCV is @nogc nothrow now.
Apr 28, 2023
Ferhat Kurtulmuş
May 12, 2023
Salih Dincer
May 12, 2023
Ferhat Kurtulmuş
May 12, 2023
Ferhat Kurtulmuş
May 12, 2023
Guillaume Piolat
May 12, 2023
Ferhat Kurtulmuş
April 28, 2023

I have been working on DCV for some time to make it GC-free. GC is good. However, people have a prejudice against GC, especially if computer vision is in question. You may probably ask if any performance improvement has been gained. I don't know at the moment; with some limited tests (for instance, convolution), there is no difference, I would say. I tested most of the things in video loops to detect memory leaks, and I believe we don't have any. For the rest, I will copy and paste some of the below information from the GitHub page https://github.com/libmir/dcv.

  • In the new API, all functions accept slice shells as Slice!(T*, N) as input. On the other hand, API functions return RC-allocated Slice!(RCI!T, N). In this way, ref-counted slices can be passed to API functions like input.lightScope. It is recommended to avoid using lightScope in loop bodies; instead, create a lightScope outside of the loop body before using it. It has a cost.

  • nogc capabilities of mir libraries and dplug:core are utilized when needed.

  • ThreadPool of dplug:core is used in the entire library for parallelism.

  • class Image and class Figure use manual memory management. A call of function destroyFigures deallocates all allocated figures automatically. If an Image instance is initialized with non-null ubyte[] data, this time, the Image instance behaves like a slice shell, and it does not attempt to deallocate the borrowed data slice.

  • All examples are up-to-date. Please refer to the examples instead of the docs at the moment.

  • There may be bugs in the library. We need more people to test for bugs. The docs and unittests are outdated.

Please give it a try and destroy me :)

May 12, 2023
On Friday, 28 April 2023 at 13:50:35 UTC, Ferhat Kurtulmuş wrote:
> Please give it a try and destroy me :)

I've been pushing myself to try DCV for about a week now. But the libraries it depends on scare me. I would love to apply artificial intelligence in a video using only D. I guess that's not possible for now?

I would like to thank dear Ferhat for his hard work and dedication...

SDB@79

May 12, 2023
On Friday, 12 May 2023 at 07:40:54 UTC, Salih Dincer wrote:
> On Friday, 28 April 2023 at 13:50:35 UTC, Ferhat Kurtulmuş wrote:
>> Please give it a try and destroy me :)
>
> I've been pushing myself to try DCV for about a week now. But the libraries it depends on scare me. I would love to apply artificial intelligence in a video using only D. I guess that's not possible for now?
>
> I would like to thank dear Ferhat for his hard work and dedication...
>
> SDB@79

Hi Salih,

Could you please provide some details about your problem, error messages etc?
May 12, 2023
On Friday, 12 May 2023 at 07:40:54 UTC, Salih Dincer wrote:
> On Friday, 28 April 2023 at 13:50:35 UTC, Ferhat Kurtulmuş wrote:
>> Please give it a try and destroy me :)
>
> I've been pushing myself to try DCV for about a week now. But the libraries it depends on scare me. I would love to apply artificial intelligence in a video using only D. I guess that's not possible for now?
>
> I would like to thank dear Ferhat for his hard work and dedication...
>
> SDB@79

For a YOLO object detection you can take a look at https://github.com/aferust/dcv-tinyyolov3.
May 12, 2023
On Friday, 12 May 2023 at 08:41:56 UTC, Ferhat Kurtulmuş wrote:
> On Friday, 12 May 2023 at 07:40:54 UTC, Salih Dincer wrote:
>> On Friday, 28 April 2023 at 13:50:35 UTC, Ferhat Kurtulmuş wrote:
>>> Please give it a try and destroy me :)
>>
>> I've been pushing myself to try DCV for about a week now. But the libraries it depends on scare me. I would love to apply artificial intelligence in a video using only D. I guess that's not possible for now?
>>
>> I would like to thank dear Ferhat for his hard work and dedication...
>>
>> SDB@79
>
> For a YOLO object detection you can take a look at https://github.com/aferust/dcv-tinyyolov3.

I see:
  "gamut": "~>1.0.0"
  "mir-algorithm": ">=3.15.3"
  "mir-core": "~>1.5.3"

The first and third dependencies could be ~>1.0 and ~>1.5, there is a guarantee of non-breaking change outside majors.
Contrarily, the second one (>=3.15.3) subscribe to future breakage in an eventual mir-algorithm v4.

May 12, 2023
On Friday, 12 May 2023 at 12:22:06 UTC, Guillaume Piolat wrote:
> On Friday, 12 May 2023 at 08:41:56 UTC, Ferhat Kurtulmuş wrote:
>> On Friday, 12 May 2023 at 07:40:54 UTC, Salih Dincer wrote:
>>> On Friday, 28 April 2023 at 13:50:35 UTC, Ferhat Kurtulmuş wrote:

> I see:
>   "gamut": "~>1.0.0"
>   "mir-algorithm": ">=3.15.3"
>   "mir-core": "~>1.5.3"
>
> The first and third dependencies could be ~>1.0 and ~>1.5, there is a guarantee of non-breaking change outside majors.
> Contrarily, the second one (>=3.15.3) subscribe to future breakage in an eventual mir-algorithm v4.

I will consider those and probably make the version changes you recommended. Thank you,  Guillaume. DCV has many codes involved in your libraries.