|
1:
V2.5.1 Single TPU Coral USB on Proxmox host -> passthrough to Container -> passthrough to Docker image:
V2.5.4 on Win11 with Dual TPU m.2 Adapter:
Why 2.5.1 detect more person?
2:
V2.5.1 Single TPU Coral USB on Proxmox host -> passthrough to Container -> passthrough to Docker image:
V2.5.4 on Win11 with Dual TPU m.2 Adapter:
Why doenst detect 2.5.4 the Person on the bicycle and why doesnt detect 2.5.1 the bicycle but the Person?
iv tryed all 3 Models on 2.5.4, but no changes.
BI detect on 2.5.4 my car as a sink and a vent pipe/flowerpot as a toilet. With 2.5.1 is the detection more precise.
here with 2.5.1
What can i do to get a better precision?
|
|
|
|
|
The MobileNet models are the oldest ones. Are you able to use the YOLO models? They are newer and should perform the best. Next I would experiment with using a model larger than small.
|
|
|
|
|
iv changed to Medium and Yolo, but why is on the Explorer Yolo5 and on the Module Setting Yolo8? whats correct?
must i change something on BLueiris too?
|
|
|
|
|
Looks like one of the numbers wasn’t changed in the interface. How is it working for you?
|
|
|
|
|
NOt really...
My car is a TV
My Heatpump is a car
My trash is a suitcase or a toilet
same picture on 2.5.1 and 2.5.4
2.5.1 looks good
and here with 2.5.4, not good
|
|
|
|
|
Could you post some of the originals so I can run some tests on them?
|
|
|
|
|
here is it
|
|
|
|
|
Here are all the models. cars_test.zip - Google Drive[^]
Notes:
All models were run on a Coral TPU with an 8-bit model.
The non-YOLO models were downloaded from the Coral example models page.
The input image has been stretched to fit the input tensor of the model. So 300x300 or 640x640, etc. One YOLOv8 model has an input that was stretched during model creation to already fit a landscape aspect ratio.
If the file is missing, nothing was found
|
|
|
|
|
I would tend to agree with you!
Using the v2.5.6 and a Coral with v2.1.4 - I have tried using Yolo, MobileNet and EfficientDet, I've had all sorts of results, ranging from Teddy Bear, TV, surfboard
I've gone back to using YOLLOv4 .NET on my CPU which is at least picking me up when I walk out of my front door, previously I wasn't getting anything
|
|
|
|
|
Hello,
how can i see if all my TPUs are used?
I have one Dual TPU in M.2 and one USB TPU. Is there a way to see if all 3 TPUs are Working? Log show me only TPU Detected...
|
|
|
|
|
I’m working on a new version of the TPU code and I’ll add that.
|
|
|
|
|
sounds good release foreseeable ?
|
|
|
|
|
I’m trying out a new idea and have some other things going on, so probably not for at least a few weeks.
|
|
|
|
|
I switched the Coral model to EfficientNet-Lite. The detections are fast and somewhat acceptable in their quality, but nearly every time CPAI is called from Blue Iris, I’m getting “AI: error 500” messages from Blue Iris. It’s spamming my phone since it’s an error.
I have facial recognition turned off in Blue Iris. I have removed all face processing modules from CPAI. This doesn’t seem to happen with the MobileNet and YoloV8 modules on the Coral.
|
|
|
|
|
Are you trying to use custom models? The Coral module doesn't include any custom models
cheers
Chris Maunder
|
|
|
|
|
No, no custom models. Just changed the model in the CPAI Coral settings JSON from MobileNet to EfficientNet-Lite.
|
|
|
|
|
Same thing with the default model (MobileNet SSD) actually. So it's not EfficientNet-Lite, it's just... something in general.
|
|
|
|
|
Hi
im currently experiencing some issues with Codeproject which keeps restarting or times out. this happens multiple times a day and sometimes need to restart the service
Im running Blueiris (5.8.77) and Codeproject (2.5.4) on a Windows 11 (i5-9500) with Nvidia Quadro P620 (Driver: 551.52, CUDA: 12.4 (up to: 12.4), Compute: 6.1, cuDNN: 8.5)
From the logs of Codeproejct i see line "Sending shutdown request to python/ObjectDetectionYOLOv5-6.2" without anything triggering the shutdown call..
and in Blueiris a lot of entries with following value:
AI: Could not be restarted
or
AI: restarted successfully
While this is happening the cpu and ram is under 20 % while the gpu is 2 %
|
|
|
|
|
Change Blue Iris settings so it doesn't start and stop CodeProject.AI
cheers
Chris Maunder
|
|
|
|
|
I had the same exact issue, so I reverted back to 2.3.4, and had no restarts since. Will this get fixed on the next version update?
|
|
|
|
|
Hello, codeproject/ai-server:gpu is outdated (2023-09-18) and asking me to update, are there going to be updates to this?
2. I am curious why codeproject/ai-server:gpu and codeproject/ai-server are separate as both can use CPU processing and it would probably mean less work if they were merged together.
Thank you for this project, it is a life changer and I appreciate all that you do.
|
|
|
|
|
wabash11 wrote: are there going to be updates to this
Updates to the latest version? We're always updating, so yes.
wabash11 wrote: why codeproject/ai-server:gpu and codeproject/ai-server are separate
The GPU image is twice the size of the CPU, so the CPU is provided for those who know they won't need the GPU bloat.
(and: you're very welcome!)
cheers
Chris Maunder
|
|
|
|
|
Hello,
Currently, I am using the latest docker image of CodeprojectAI Server (codeproject/ai-server:gpu v2.5.4). I use a reverse proxy to access the docker so I match a fqdn:443 to serverfqdn:32168.
It was working like a charm until version (I am not sure exactly of the version) v2.5.0.
The problem
Now when accessing fqdn:443 from any device, the Web Server is unable to correctly show the Website, it tells me that it can't check updates and report logs or status.
What I tried (without success) :
- Changing docker environment variable CPAI_PORT or ASPNETCORE_URLS or both did not change the port that listen in the docker
- Changing appsettings.json or appsettings.docker.json did not have any effect in the docker (IPv6, CPAI port, legacy port, …)
- Changing serversettings.json did not have any effect in the docker (Disabling IPv6, changing CPAI port, disabling legacy port, …)
Workaround :
The only way I made it work was to change /app/server/wwwroot/assets/server.js and replace the string `${apiServiceProtocol}//${apiServiceHostname}${apiServicePort}` by "https://fqdn" (without the port number).
This fixes the Service Url with the correct port number (443 instead of 32168) which allows the interface to fully work.
Question
Do you have a clean way to fix the Service URL or CPAI port ?
I am also interested in disabling legacy port and IPv6.
Thank you so much for this project !
PS : Sorry for my english
|
|
|
|
|
The Docker image exposes port 32168 and 5000, so changing the port inside the docker container won't work because that port isn't exposed. What about mapping ports on the docker command line? -p <portb>:<portb>
Disabling legacy port and IPv6:
in appsettings.json, under"ServerOptions", are
DisableLegacyPort - set to true to disables port 5000
DisableIPv6 - set to true to disable IPv6
cheers
Chris Maunder
|
|
|
|
|
Hello Chris,
Thank you for taking the time to answer.
About appsettings, you're right. I didn't know that exposedport are predefined and may not be automatically updated by the container. Actually changing DisableLegacyPort in appsettings.json works, and as you said, docker continues to expose port 5000. So after disabling Legacy port I have :
root@docker:/mnt/docker/cctv# docker exec -it cctv-codeprojectai curl -I http://localhost:5000
curl: (7) Failed to connect to localhost port 5000 after 0 ms: Connection refused
Before disabling Legacy port I have :
root@docker:~# docker exec -it cctv-codeprojectai curl -I http://localhost:5000
HTTP/1.1 200 OK
Content-Length: 29083
Content-Type: text/html
Date: Sat, 24 Feb 2024 11:12:57 GMT
Server: Kestrel
Accept-Ranges: bytes
ETag: "1da5ec134e5181b"
Last-Modified: Tue, 13 Feb 2024 21:11:27 GMT
Also changing CPAI_PORT seems to allow the docker to listen on both port 32168 and the port configured but docker container do not automatically expose this port. But obviously this does not help
About mapping ports on the docker command line : this is what I actually do. I am mapping host port 32168 to docker port 32168. Then I map my reverse proxy https://virtualserverFQDN:443 to docker http://dockerFQDN:32168. I can access the webGUI of codeproject server ai without any problem.
But the interface does not work correctly and Service URL reports https://virtualserverFQDN:32168 instead of https://virtualserverFQDN:443 (or https://virtualserverFQDN). Web interface reports status Offline and is not able to check if there is an update available. All tabs (Status, Server Logs, System Info, Mesh, Install Modules) are empties. So it seems that the port is not correctly detected.
I checked which version has breaked my setup :
codeproject/ai-server:cuda12_2-2.5.0 (2.5-RC4): works with Reverse Proxy - Service URL correctly indicates https://virtualserverFQDN (without port 32168)
codeproject/ai-server:cuda12_2-2.5.1 (2.5.1): DOES NOT work with Reverse Proxy - Service URL correctly indicates https://virtualserverFQDN:32168 (with port 32168)
So starting from version 2.5.1 Service URL is not correctly detected. I compared /app/server/wwwroot/assets/server.js between versions and it has changed starting from v2.5.1 (this corroborates my tests).
To workaround my issue I can use http://dockerFQDN:32168 (without the reverse proxy but I prefer not to do that) or I can modify /app/server/wwwroot/assets/server.js and force Service URL.
EDIT 2024-02-25 :
I think that the problem comes from this line in server.js :
const apiServicePort = ":" + (window.location.port || 32168);
I tried with port 444 and the port is correctly detected. It seems that for default port (443 for https), window.location.port returns an empty string so it is replaced by 32168 in the line that follows for apiServicePort then apiServiceUrl is wrongly replaced with port 32168 :
const apiServiceUrl = `${apiServiceProtocol}//${apiServiceHostname}${apiServicePort}`;
To solve my issue it would be great to fix server.js with (hoping there is no dependencies) :
Replacing
const apiServiceUrl = `${apiServiceProtocol}//${apiServiceHostname}${apiServicePort}`; by
let apiServiceUrl = `${apiServiceProtocol}//${apiServiceHostname}`;
if (window.location.port !== "")
apiServiceUrl = `${apiServiceProtocol}//${apiServiceHostname}${apiServicePort}`;
modified 25-Feb-24 5:00am.
|
|
|
|