CodeProject.AI Version 2.0

Your sub is more than my main
Same resolution but higher bitrate

Unticking the high definition box reduces the size to about 15kb

Will try with this for a few days
Possible sub-stream resolutions vary with the camera. E.g. a Dahua 5442 has 3 streams that is very nice. Can be configured e.g. to 1 full res., 1 full HD, 1 ~VGA. I love this approach. But for example a non-C Hikvision 2086 has only 720p 3rd stream, and so on. Dahua's full-HD third stream is also full quality.
 
First you need to chose one, you have both the CPU and the GPU version running. I would try the GPU. Click on the 3 dots ... to disable one.
Second, when using custom models you need to uncheck Default object detection
Third, if you are using the GPU version you need the .onnx custom models for the .NET version
View attachment 166359

If you use the CPU version you will need the .pt custom models
View attachment 166360

Click on the 3 Dots ... on Use custom models: to see which models you have installed:
View attachment 166361

HTH

Hey wassup again... I should change to Gpu version because with the cpu one... impossible... BSOD everytime... cpu 100% I couldn´t believe it...
So gonna keep an eye on it :D

Thankss! I will update soon
 
  • Like
Reactions: David L
Interesting results from comparing YOLOv5 .NET and YOLOv5 6.2 CUDA!!
With my card gtx970 the YOLOv5 6.2 appears faster (Both on large model scale)


09:42:48:Object Detection (YOLOv5 .NET): Command completed in 55 ms.
09:42:49:Object Detection (YOLOv5 .NET): Command completed in 46 ms.
09:42:49:Object Detection (YOLOv5 .NET): Command completed in 43 ms.
09:42:49:Object Detection (YOLOv5 .NET): Command completed in 44 ms.
09:42:50:Object Detection (YOLOv5 .NET): Command completed in 46 ms.
09:42:50:Object Detection (YOLOv5 .NET): Command completed in 47 ms.




09:43:50:Object Detection (YOLOv5 6.2): Detecting using ipcam-combined
09:43:50:Object Detection (YOLOv5 6.2): Queue request for Object Detection (YOLOv5 6.2) command 'custom' (...f42607) took 27ms
09:43:51:Object Detection (YOLOv5 6.2): Detecting using ipcam-combined
09:43:51:Object Detection (YOLOv5 6.2): Queue request for Object Detection (YOLOv5 6.2) command 'custom' (...923816) took 36ms
09:43:51:Object Detection (YOLOv5 6.2): Detecting using ipcam-combined
09:43:51:Object Detection (YOLOv5 6.2): Queue request for Object Detection (YOLOv5 6.2) command 'custom' (...25bf93) took 29ms
09:43:51:Object Detection (YOLOv5 6.2): Detecting using ipcam-combined
09:43:51:Object Detection (YOLOv5 6.2): Queue request for Object Detection (YOLOv5 6.2) command 'custom' (...93169d) took 35ms
09:43:51:Object Detection (YOLOv5 6.2): Detecting using ipcam-combined
09:43:51:Object Detection (YOLOv5 6.2): Queue request for Object Detection (YOLOv5 6.2) command 'custom' (...638604) took 38ms
 
  • Like
Reactions: David L
Interesting results from comparing YOLOv5 .NET and YOLOv5 6.2 CUDA!!
With my card gtx970 the YOLOv5 6.2 appears faster (Both on large model scale)


09:42:48:Object Detection (YOLOv5 .NET): Command completed in 55 ms.
09:42:49:Object Detection (YOLOv5 .NET): Command completed in 46 ms.
09:42:49:Object Detection (YOLOv5 .NET): Command completed in 43 ms.
09:42:49:Object Detection (YOLOv5 .NET): Command completed in 44 ms.
09:42:50:Object Detection (YOLOv5 .NET): Command completed in 46 ms.
09:42:50:Object Detection (YOLOv5 .NET): Command completed in 47 ms.




09:43:50:Object Detection (YOLOv5 6.2): Detecting using ipcam-combined
09:43:50:Object Detection (YOLOv5 6.2): Queue request for Object Detection (YOLOv5 6.2) command 'custom' (...f42607) took 27ms
09:43:51:Object Detection (YOLOv5 6.2): Detecting using ipcam-combined
09:43:51:Object Detection (YOLOv5 6.2): Queue request for Object Detection (YOLOv5 6.2) command 'custom' (...923816) took 36ms
09:43:51:Object Detection (YOLOv5 6.2): Detecting using ipcam-combined
09:43:51:Object Detection (YOLOv5 6.2): Queue request for Object Detection (YOLOv5 6.2) command 'custom' (...25bf93) took 29ms
09:43:51:Object Detection (YOLOv5 6.2): Detecting using ipcam-combined
09:43:51:Object Detection (YOLOv5 6.2): Queue request for Object Detection (YOLOv5 6.2) command 'custom' (...93169d) took 35ms
09:43:51:Object Detection (YOLOv5 6.2): Detecting using ipcam-combined
09:43:51:Object Detection (YOLOv5 6.2): Queue request for Object Detection (YOLOv5 6.2) command 'custom' (...638604) took 38ms
Have you tried comparing using the benchmark

1688130771050.png
 
  • Like
Reactions: David L
Interesting results from comparing YOLOv5 .NET and YOLOv5 6.2 CUDA!!
With my card gtx970 the YOLOv5 6.2 appears faster (Both on large model scale)


09:42:48:Object Detection (YOLOv5 .NET): Command completed in 55 ms.
09:42:49:Object Detection (YOLOv5 .NET): Command completed in 46 ms.
09:42:49:Object Detection (YOLOv5 .NET): Command completed in 43 ms.
09:42:49:Object Detection (YOLOv5 .NET): Command completed in 44 ms.
09:42:50:Object Detection (YOLOv5 .NET): Command completed in 46 ms.
09:42:50:Object Detection (YOLOv5 .NET): Command completed in 47 ms.




09:43:50:Object Detection (YOLOv5 6.2): Detecting using ipcam-combined
09:43:50:Object Detection (YOLOv5 6.2): Queue request for Object Detection (YOLOv5 6.2) command 'custom' (...f42607) took 27ms
09:43:51:Object Detection (YOLOv5 6.2): Detecting using ipcam-combined
09:43:51:Object Detection (YOLOv5 6.2): Queue request for Object Detection (YOLOv5 6.2) command 'custom' (...923816) took 36ms
09:43:51:Object Detection (YOLOv5 6.2): Detecting using ipcam-combined
09:43:51:Object Detection (YOLOv5 6.2): Queue request for Object Detection (YOLOv5 6.2) command 'custom' (...25bf93) took 29ms
09:43:51:Object Detection (YOLOv5 6.2): Detecting using ipcam-combined
09:43:51:Object Detection (YOLOv5 6.2): Queue request for Object Detection (YOLOv5 6.2) command 'custom' (...93169d) took 35ms
09:43:51:Object Detection (YOLOv5 6.2): Detecting using ipcam-combined
09:43:51:Object Detection (YOLOv5 6.2): Queue request for Object Detection (YOLOv5 6.2) command 'custom' (...638604) took 38ms
Hi, Could you attach GPU usage graphs from Task Manager, for both GPU 0 and GPU 1 (CPU's and the 970), of the benchmark, or BI load ? Thanks.
 
benchmark results from between the 2 with the same photo and using ipcam-combined.
Do these make sense?

34.3 operations per second - 50/50 6.2 cuda

53.7 operations per second - 50/50 .NET

Also Vision results using 6.2 cuda:

1688132094356.png

gpu is hardly tickled. cpu barely breathing after triggering at 200ms intervals for 10 seconds.

1688131639291.png
 
benchmark results from between the 2 with the same photo and using ipcam-combined.
Do these make sense?

34.3 operations per second - 50/50 6.2 cuda

53.7 operations per second - 50/50 .NET

Also Vision results using 6.2 cuda:

View attachment 166581

gpu is hardly tickled. cpu barely breathing after triggering at 200ms intervals for 10 seconds.

View attachment 166580
Mine has 0 % 3D utilization (3D may relate to matrix operation, that can be essential to AI), so I think my CP AI still uses either the CPU or the CPU's GPU.
I have no idea how to be sure about that. Found no settings in CP.AI to configure which GPU to use.
 
Change 'video encode' in the dropdown to 'cuda', in task manager, GPU
 
Change 'video encode' in the dropdown to 'cuda', in task manager, GPU
Referring to the attached settings, I've set the 'Hardware accelerated decode' to NvDEC and the GPU to 1. And since then the 'Video Decode' of the nVidia GPU has elevated from 0 % while of the UHD 630's fallen to 0 %.
But I think that's the camera video stream decode inside BI and not what CP.AI server utilizes for NN. CP.AI may has its own task scheduler to the GPU and it also selects the GPU. The CPU's Intel UHD 630 is GPU 0, and the nVidia is GPU 1.
But there's no setting in CP.AI to tell to use GPU 1.
 

Attachments

  • 0.png
    0.png
    2.7 KB · Views: 14
OK think I understand how the to cancel in alerts works now.
I was observing CP analyses all the snapshots taken withing the trigger range/time before sending out the alert waiting for the best match.

This could cause a delay.
I want instant alert for the first image.
Left the to cancel field blank and reduced the trigger time to 2 seconds.
First positive object found it sends me the alert ends the trigger and sends me the mqtt message and object

Let's say I have the settings at 200ms for 5 seconds.
Looking at the dat file I see it goes through every 25 jpegs and chooses the best confidence before triggering any alert.
I want to be notified immediately on the first match as long as it meets the minimum confidence.
So leaving the cancel field blank and reducing the trigger time appears to alert me faster.

Still have doubts about the retrigger options also. Never had been clear to me

As far as I understand. Let me know if you think otherwise please

Unless I choose in alerts - for new triggers and re-triggers with cancel field filled? Would this keep firing alerts for long triggers? If I see person 10 times in 1 dat file at the moment that only alerts me 1 time. Would choosing new alerts and re-triggers alert me 10 times here?
Looks like I need to try these options in real life outside.
 
Last edited:
  • Like
Reactions: David L
This is the setting after trial and error
Trigger for 10 secs max 15 secs
200ms- Cancel field blank
and now I get faster alerts as I believe it is sending me alerts for each re-trigger which is what I want to achieve.

Shame I can't configure na mqtt alert action to Trigger everytime but limit the person alerts to say 5 seconds.
Thta 5 second limit applies to all alert actions

1688226155246.png
 
Last edited:
  • Like
Reactions: David L
Do we need to add anything into this To cancel box? What does your test DoNotCancel do? Mine is blanck. Any harm?

Thanks

View attachment 166525
So I got it from Mike...

 
I have disable the 2nd video card via bios.

I was reading through the older threads trying to get up to speed. In win10 and win11, there is an option to select which program uses which GPU

Here is post about Win 10 and Win11 is basically the same thing. Right click the desktop, select display settings, go down to graphics. In the 'add an app box' browse to Blue Iris and then select which GPU you want it to use



preferred GPU.jpg
 
Your sub is more than my main
Same resolution but higher bitrate

Unticking the high definition box reduces the size to about 15kb

Will try with this for a few days

It depends what you're using the sub for. If it's just live viewing or for AI analysis, then it's not that important.

If you're recording the sub BVR as a backup in case the trips miss something, then it's vitally important it's of good quality otherwise you'll have a recording you can't identify from when you most need to.
 
  • Like
Reactions: David L
It depends what you're using the sub for. If it's just live viewing or for AI analysis, then it's not that important.

If you're recording the sub BVR as a backup in case the trips miss something, then it's vitally important it's of good quality otherwise you'll have a recording you can't identify from when you most need to.
Switched high definition back on.
Results were poor and very little difference in processing time. Only use substreams also
 
  • Like
Reactions: CCTVCam
Problems...

Fresh install of Win11 Pro on bare metal. I followed the 'easy way' instructions
1. I have NVIDA driver for Quadro p400 v2
2. I installed Cuda 11.7 (Express Install Option)
3. I installed cuDNN script
4. Enabled AI in Blue Iris with gpu selected

Lots of red in the log so I went to one of the links in the log file and downloaded .net 7.0. Restarted the computer and now the CPAI service won't start due to login failure.

This is why I made a Macrium Image beforehand...

Question = was there something else that needed to be installed first? Some .net package or visual studio 2019 or what?

(going to restore image and try again)


T22-2516.jpg