簡體   English   中英

如何從 memory 加載 opencv dnn model?

[英]How to load an opencv dnn model from memory?

我有一個 caffemodel 和 deploy.txt,我想從 memory 加載,而不是從硬盤加載。 我的想法是:

1 - 加密這些文件

2 - 附加在 library.so (或可執行文件)的末尾

這些步驟已准備就緒。

現在,

3 - 我會解密這些文件(在內存中)

4 - 我想從 memory 打開這些 dnn model (而不是文件)

我知道如何執行第 3 步,但不知道第 4 步。

所以基本上我如何使用cv::dnn::readNetFromCaffe ,而不是來自 memory 的文件?

如果答案在 C++ 中,將更加感激。

這不是解決方案,而是一種解決方法。

您可以將解密后的 memory 存儲到一個文件中,加載它然后立即將其刪除。 在 windows 中,您可以將 FILE_ATTRIBUTE_TEMPORARY 與 CreateFile() function 一起使用,因此如果緩存大小允許,文件可以避免寫入磁盤。 在 Linux 中,您可以在打開的 function 上使用 O_TMPFILE 標志,這將確保在文件描述符關閉(或程序崩潰)后刪除文件。 但在最后一種情況下,無論大小如何,文件都會寫入磁盤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM