[support] Corgans Docker Repository - double-take, facebox, tagbox, videobox, compreface


Recommended Posts

@corgan

I had the same errors as others trying to get your template to run. It also seemed to put quite a load on my unraid server....thought it crashed for a few cuz it seemed to be in a restart loop and I couldn't stop the container. Luckily I was able to stop it after a few tries.

 

I did not have an external database setup and I think that might be part of the issue with your template. I manually created the container myself using the new "Single docker container" docs provided in github:

https://github.com/exadel-inc/CompreFace/blob/master/docs/Installation-options.md#single-docker-container

 

Below is the docker command created by personal container that ran perfectly (so far). The docker command created by your template was almost identical except that it had a specific version of compreface and also that it provided the external database variables (unneeded in may case). I cant say whether it was the specific version or the variables that created the issue.

image.thumb.png.ad7deceb79917924c226e4801b91cebb.png

 

Hopefully this is helpful to you so you can create a stable template for the community. Thanks for all your work getting this created in way that is usable in Unraid. I saw all your github posts. The time and effort is appreciated.

  • Like 1
Link to comment

FYI it works perfect with an external db. Also if you’re using the GPU version with double-take 1.7.0 the status check will cause compreface to fail. I raised the issue on GitHub. That being said, if it’s correctly configured and you avoid the status page in double take, there is no issue.

For reference:

https://github.com/exadel-inc/CompreFace/issues/691


Sent from my iPhone using Tapatalk

Link to comment
20 hours ago, bigbangus said:

FYI it works perfect with an external db.

That's correct. The issue only occurs if you try to use the internal database. It seems that just having the variables configured (even if External_DB=false is set) causes some sort of misconfiguration and the container fails to load correctly....more importantly for me it causes the container to continuously try to start and fail in a loop that can crash my unraid box. My guess is that the problem lies with how the "single container" image handles the db variables during initialization.

 

If it didn't make my server unstable, I would have tried to use @corgan template with different combinations of settings. My guess is that an issue would need to be raised on exadel's github to look at why the container fails to initialize when the DB variables are set and there is no external db configured (even when set to false).

Edited by stephack
mistake
Link to comment

The standard version works fine with a external db, but I'm having issues with getting the gpu version to work.

I have tried both mobilenet and arcface, the webgui loads on both but using the test function fails with a 504 timeout error

 

2022/01/20 11:59:15 [error] 144#144: *39 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 172.16.16.15, server: ui, request: "POST /api/v1/recognition/recognize?face_plugins=landmarks&face_plugins=gender&face_plugins=age HTTP/1.1", upstream: "http://127.0.0.1:8080/api/v1/recognition/recognize?face_plugins=landmarks&face_plugins=gender&face_plugins=age", host: "172.16.16.10:8000", referrer: "http://172.16.16.10:8000/test-model?app=4b6ce91d-fd3d-42d6-b1b2-e141132ac78b&model=84c4ff83-1e67-474c-b518-7278519bd134&type=RECOGNITION"

 

Hardware is Intel i5-8500 and a rtx3080 with latest nvidiadrivers from unraid plugin.

I can see from nvidia-smi:

 0   N/A  N/A     31062      C   uwsgi                             215MiB 

 

Link to comment
  • 3 weeks later...

@Jako @corgan

 

Re: doubletake

I see the instructions say CPU not recommended,  is this due to processing power, or quality of results?

Im not exactly running on a pi... 
Running on a threadripper 1950x 16c/32t .

 

I already have deepstack, frigate, doubletake running and dont notice. 
there is a TON of other things running too....

I have a coral dual TPU on order.... 6 months back ordered. might see it by july

 

image.thumb.png.7c4ad12dcae7fd43acb203e92fd29a6d.png

 

image.png.1ae29b6bb47c2da1ae2a4aa3b147dd56.png

Edited by TRusselo
Link to comment
  • 2 months later...
  • 3 months later...

For those who are still struggling to get Compreface running with the internal database, I think this is a step by step on how to fix the issue.

 

If you are starting fresh, skip the first three lines. If you installed this docker already, start from the beginning.

  1. On the Docker tab in the unRaid webgui, stop CompreFace if running.
  2. On the Docker tab in the unRaid webgui, delete CompreFace docker installation.
  3. THIS IS VERY IMPORTANT: delete the default compreface folder that was created in your appdata folder. IF YOU DON’T DO THIS, YOU WILL CONTINUE TO GET ERRORS NO MATTER WHAT YOU DO.
  4. Go back to the apps tab and install Compreface (I’ve only tested the CPU version — I don’t know about the GPU version).
  5. DO NOT JUST BLINDLY HIT APPLY AND START THE INSTALL WITH THE DEFAULT PARAMETERS Instead, toggle on Advanced View (top right of the Compreface docker installation page). THEN GO TO “SHOW MORE SETTINGS”. DELETE ALL FOUR OF THE CUSTOM SETTINGS THERE BY USING THE BUTTONS TO THE RIGHT OF THE TEXT BOX Those settings are for using an external database, but if you are trying to use the internal database it will create a series of errors.
  6. Hit apply on the docker install page, and let docker/unraid do its thing. Go get a cup of coffee and let compreface go through its installation.
  7. After successful installation, you should be able to access the webgui for compreface without issue.

These fixes do appear in this thread already, but I had to read through the thread several times and do a bunch of trial-and-error to figure out that I needed to delete the docker and the appdata before trying to reinstall sans database parameters.

  • Like 1
  • Upvote 1
Link to comment

I *think* I was able to successfully update the build version to 1.0.0 by changing the repository from exadel/compreface:0.6.1 to exadel/compreface.

 

I was able to boot to the webgui and login to Compreface, although I haven't tried to actually do anything with it yet. However making that change did cause the "Version" cell for CompreFace in the Docker tab to show "not available". I confess that my understanding of docker is not nearly as good as many people on here -- so apologies if I'm stating something incredibly obvious.

Link to comment
  • 2 weeks later...
  • 2 months later...
On 9/3/2022 at 4:09 PM, Pim Bliek said:

How do you use the Coral TPU with CompreFace on Unraid? How about an NVidia GPU?

 

I'm running the CompreFace-GPU template, but it seems to only use the CPU. I have both a PCIE Coral TPU and an NVidia P2000.

 

Same of me. Any update on this ? Tried setting the NVIDIA_DRIVER_CAPABILITIES & NVIDIA_VISIBLE_DEVICES flag for the container - but no chance

Link to comment
  • 1 month later...
On 8/19/2022 at 3:28 PM, imagoodusername said:

For those who are still struggling to get Compreface running with the internal database, I think this is a step by step on how to fix the issue.

 

If you are starting fresh, skip the first three lines. If you installed this docker already, start from the beginning.

  1. On the Docker tab in the unRaid webgui, stop CompreFace if running.
  2. On the Docker tab in the unRaid webgui, delete CompreFace docker installation.
  3. THIS IS VERY IMPORTANT: delete the default compreface folder that was created in your appdata folder. IF YOU DON’T DO THIS, YOU WILL CONTINUE TO GET ERRORS NO MATTER WHAT YOU DO.
  4. Go back to the apps tab and install Compreface (I’ve only tested the CPU version — I don’t know about the GPU version).
  5. DO NOT JUST BLINDLY HIT APPLY AND START THE INSTALL WITH THE DEFAULT PARAMETERS Instead, toggle on Advanced View (top right of the Compreface docker installation page). THEN GO TO “SHOW MORE SETTINGS”. DELETE ALL FOUR OF THE CUSTOM SETTINGS THERE BY USING THE BUTTONS TO THE RIGHT OF THE TEXT BOX Those settings are for using an external database, but if you are trying to use the internal database it will create a series of errors.
  6. Hit apply on the docker install page, and let docker/unraid do its thing. Go get a cup of coffee and let compreface go through its installation.
  7. After successful installation, you should be able to access the webgui for compreface without issue.

These fixes do appear in this thread already, but I had to read through the thread several times and do a bunch of trial-and-error to figure out that I needed to delete the docker and the appdata before trying to reinstall sans database parameters.

This doesn't work for me, just complains about not being able to find a suitable jdbc url. It seems to need those lines. External database defaults to false, so I don't know why it would be a probably to leave. Once upon a time, it worked like that, but trying to use again after a hiatus and with or without, it still doesn't work for me.

Link to comment
  • 1 month later...
On 8/20/2022 at 5:28 AM, imagoodusername said:

I think this is a step by step on how to fix the issue.

Thanks for this. I had it working a long time ago, then didn't use it for a while and trying to reinstall today was painful as i was getting so many errors. 

 

Found your post and it worked.

I also changed the template from 0.6.1 to just exadel/compreface and its fine (currently 1.1.0 i believe)

 

I had to wait a little while before the webui was functioning but was able to create a login and application after that. 

Link to comment
  • 1 month later...
  • 1 month later...
  • 1 month later...
On 9/3/2022 at 5:09 AM, Pim Bliek said:

How do you use the Coral TPU with CompreFace on Unraid? How about an NVidia GPU?

 

I'm running the CompreFace-GPU template, but it seems to only use the CPU. I have both a PCIE Coral TPU and an NVidia P2000.

 

Did you ever find out how to get the Coral TPU working?

Link to comment
  • 3 months later...
     at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:333)
        at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:157)
        ... 26 common frames omitted


  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::               (v2.5.13)

2023-10-01 19:32:15,996 INFO exited: compreface-api (exit status 1; not expected)
2023-10-01 19:32:16.011  INFO 6318 --- [kground-preinit] o.h.validator.internal.util.Version      : HV000001: Hibernate Validator 6.2.3.Final
2023-10-01 19:32:16,014 INFO spawned: 'compreface-api' with pid 6357
2023-10-01 19:32:16.054  INFO 6318 --- [           main] com.exadel.frs.FrsApplication            : Starting FrsApplication v0.0.1-SNAPSHOT using Java 17.0.8 on 908ac2677486 with PID 6318 (/app/admin/app.jar started by root in /app/admin)
2023-10-01 19:32:16,055 INFO success: compreface-api entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
2023-10-01 19:32:16.055 DEBUG 6318 --- [           main] com.exadel.frs.FrsApplication            : Running with Spring Boot v2.5.13, Spring v5.3.19
2023-10-01 19:32:16.055  INFO 6318 --- [           main] com.exadel.frs.FrsApplication            : The following 1 profile is active: "dev"

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::               (v2.5.13)

2023-10-01 19:32:17.334  INFO 6357 --- [kground-preinit] o.h.validator.internal.util.Version      : HV000001: Hibernate Validator 6.2.3.Final
2023-10-01 19:32:17.348  INFO 6357 --- [           main] com.exadel.frs.TrainServiceApplication   : Starting TrainServiceApplication v0.0.1-SNAPSHOT using Java 17.0.8 on 908ac2677486 with PID 6357 (/app/api/app.jar started by root in /app/api)
2023-10-01 19:32:17.349  INFO 6357 --- [           main] com.exadel.frs.TrainServiceApplication   : The following 1 profile is active: "dev"
2023-10-01 19:32:17.408  WARN 6357 --- [           main] o.s.b.c.config.ConfigDataEnvironment     : Property 'spring.profiles' imported from location 'class path resource [application.yml]' is invalid and should be replaced with 'spring.config.activate.on-profile' [origin: class path resource [application.yml] from app.jar - 97:13]
2023-10-01 19:32:17.477  INFO 6318 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.
2023-10-01 19:32:17.597  INFO 6318 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 111 ms. Found 11 JPA repository interfaces.
2023-10-01 19:32:17.936  INFO 6318 --- [           main] o.s.cloud.context.scope.GenericScope     : BeanFactory id=4f6f4c57-c8da-3cb6-891a-781628377874
2023-10-01 19:32:18.498  INFO 6357 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.
2023-10-01 19:32:18.592  INFO 6357 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 81 ms. Found 8 JPA repository interfaces.
2023-10-01 19:32:18.685  INFO 6318 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8081 (http)
2023-10-01 19:32:18.700  INFO 6318 --- [           main] o.a.coyote.http11.Http11NioProtocol      : Initializing ProtocolHandler ["http-nio-8081"]
2023-10-01 19:32:18.701  INFO 6318 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2023-10-01 19:32:18.702  INFO 6318 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.62]
2023-10-01 19:32:18.786  INFO 6318 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2023-10-01 19:32:18.786  INFO 6318 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 2681 ms
2023-10-01 19:32:19.229  INFO 6357 --- [           main] o.s.cloud.context.scope.GenericScope     : BeanFactory id=355f53b0-025e-31e7-98df-696283bbc190
2023-10-01 19:32:19.336  INFO 6318 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Starting...
2023-10-01 19:32:19.346  WARN 6318 --- [           main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'liquibase' defined in class path resource [org/springframework/boot/autoconfigure/liquibase/LiquibaseAutoConfiguration$LiquibaseConfiguration.class]: Invocation of init method failed; nested exception is java.lang.RuntimeException: Driver org.postgresql.Driver claims to not accept jdbcUrl, pdbtk:postgresql://172.18.0.6:5432/pdbtk
2023-10-01 19:32:19.351  INFO 6318 --- [           main] o.apache.catalina.core.StandardService   : Stopping service [Tomcat]
2023-10-01 19:32:19.381  INFO 6318 --- [           main] ConditionEvaluationReportLoggingListener : 

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2023-10-01 19:32:19.413 ERROR 6318 --- [           main] o.s.boot.SpringApplication               : Application run failed

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'liquibase' defined in class path resource [org/springframework/boot/autoconfigure/liquibase/LiquibaseAutoConfiguration$LiquibaseConfiguration.class]: Invocation of init method failed; nested exception is java.lang.RuntimeException: Driver org.postgresql.Driver claims to not accept jdbcUrl, pdbtk:postgresql://172.18.0.6:5432/pdbtk
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1804)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542)
        at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
        at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1154)
        at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:908)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583)
        at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:145)
        at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:775)
        at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:448)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:339)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1365)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1354)
        at com.exadel.frs.FrsApplication.main(FrsApplication.java:28)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:568)
        at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49)
        at org.springframework.boot.loader.Launcher.launch(Launcher.java:108)
        at org.springframework.boot.loader.Launcher.launch(Launcher.java:58)
        at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:88)
Caused by: java.lang.RuntimeException: Driver org.postgresql.Driver claims to not accept jdbcUrl, pdbtk:postgresql://172.18.0.6:5432/pdbtk
        at com.zaxxer.hikari.util.DriverDataSource.<init>(DriverDataSource.java:110)
        at com.zaxxer.hikari.pool.PoolBase.initializeDataSource(PoolBase.java:331)
        at com.zaxxer.hikari.pool.PoolBase.<init>(PoolBase.java:114)
        at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:108)
        at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112)
        at liquibase.integration.spring.SpringLiquibase.afterPropertiesSet(SpringLiquibase.java:266)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1863)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1800)
        ... 26 common frames omitted

2023-10-01 19:32:19,496 INFO exited: compreface-admin (exit status 1; not expected)
2023-10-01 19:32:19.663  INFO 6357 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'cacheConfig' of type [com.exadel.frs.core.trainservice.config.CacheConfig$$EnhancerBySpringCGLIB$$3a7e9541] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2023-10-01 19:32:19,665 INFO spawned: 'compreface-admin' with pid 6400

 

Link to comment

I am having issues where the CPU usage rockets sky high after running compreface for a few hours. You can see from the image attached the CPU usage spike until i stop the compreface container, usage goes up to around 90%.

Template is the GPU arcface 1.2 repository. How can i check if it is using the GPU as surely with the spike in CPU usage which is also causing CPU temps to reach over 70C shows that its not running on the GPU?

I have latest Nvidia drivers and frigate is using GPU and a TPU. Screenshot_20231003_215029_Brave.thumb.jpg.68d1f6d9e030b1c3acf70bc2e2666a18.jpgScreenshot_20231003_214225_Brave.jpg.36df81e92656c67ffe278039198be3da.jpg

Screenshot 2023-10-04 074445.png

Link to comment

To include more info...

 

I have had all sorts of issues of very high CPU usage whilst running external DB.. So ive now gone down the internal DB route using arcfacegpu various versions (probably tried all) I can create a recognition api key.. point doubletake to the compreface webpage and supply api key, but it never connects, it says its not a valid api key in the log.

Link to comment
On 8/19/2022 at 8:28 PM, imagoodusername said:

For those who are still struggling to get Compreface running with the internal database, I think this is a step by step on how to fix the issue.

 

If you are starting fresh, skip the first three lines. If you installed this docker already, start from the beginning.

  1. On the Docker tab in the unRaid webgui, stop CompreFace if running.
  2. On the Docker tab in the unRaid webgui, delete CompreFace docker installation.
  3. THIS IS VERY IMPORTANT: delete the default compreface folder that was created in your appdata folder. IF YOU DON’T DO THIS, YOU WILL CONTINUE TO GET ERRORS NO MATTER WHAT YOU DO.
  4. Go back to the apps tab and install Compreface (I’ve only tested the CPU version — I don’t know about the GPU version).
  5. DO NOT JUST BLINDLY HIT APPLY AND START THE INSTALL WITH THE DEFAULT PARAMETERS Instead, toggle on Advanced View (top right of the Compreface docker installation page). THEN GO TO “SHOW MORE SETTINGS”. DELETE ALL FOUR OF THE CUSTOM SETTINGS THERE BY USING THE BUTTONS TO THE RIGHT OF THE TEXT BOX Those settings are for using an external database, but if you are trying to use the internal database it will create a series of errors.
  6. Hit apply on the docker install page, and let docker/unraid do its thing. Go get a cup of coffee and let compreface go through its installation.
  7. After successful installation, you should be able to access the webgui for compreface without issue.

These fixes do appear in this thread already, but I had to read through the thread several times and do a bunch of trial-and-error to figure out that I needed to delete the docker and the appdata before trying to reinstall sans database parameters.

Followed this several times, able to create an api key, but can't get double take to connect to compreface. Had it all working in an external dB, but I wasn't to use internal as external killed my server too many times with excessive cpu usage. I'm using arcface gpu build, all different versions. From 0.6 to 1.2

Link to comment
  • 3 months later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.