推測とは、手持ちのデータから未知のものを推(お)し測るという全般的な概念のこと。
推定とは、推測の具体的な手段の1つで、標本の値を元に、母集団の持つ何らかの値を求めること。
シナジー立ち上げて NOTE: Cursor is locked to screen, check Scroll Lock key てなメッセージを、見つけたら "Scroll-Lock" を押すことで解決できる HHKBなら "Fn + o" が ScrLkに割り当てられている
Webの特定のページにパスワードをかけようと .htpasswd やら .htaccess を設定するも、動かなくて困っていた いろいろ調べて、 /etc/apache2/apache2.conf の <Directory /var/www/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> の"None"のところを"All"とすると、 <Directory /var/www/> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> 動いているようだ。もう少し確認が必要だと思うけど
ebata@ebata-desktop:~/video$ cat .htpasswd tom:q3489p7wtrghui423058-pw
ebata@ebata-desktop:~/video$ cat .htaccess AuthType Basic AuthName "HOME VIDEO" AuthUserFile /var/www/html/video/.htpasswd require valid-user <Files ~ "^.ht"> deny from all </Files>
最後に、sudo /etc/init.d/apache2 restart で再起動
参考文献 http://www.malab.se.ritsumei.ac.jp/jp/member_only/page-4220/
前提: mingwは4ベースの(現時点での最新gcc version 4.9.1 (x86_64-posix-seh-rev0, Built by MinGW-W64 project) )を使用
[Step1] opencv-3.1.0.exe をダウンロードして、c:\の直下に展開
[Step2] GUI版のCmakeもダウンロードして、適当なところに展開
[Step3] cmakeを立ち上げて、(1)"Where is the source code" を"C:/opencv/sources"に、(2)"Where is the build code" を"C:/opencv/build/x68/test_mingw"に、(2)Current Generator:#MinGW Makefiles"に設定
[Step4] configure..で、真っ赤になって上手くいかないので、
BUILD_DOCS OFF WITH_FFMPEG OFF WITH_IPP OFF WITH_TBB ON
とすると、上手くいく(こともある) → configureして白くなったら, Generateです(これもしつこく押していると、いずれ白くなることがある)
C:/opencv3.0.0/sources/Cmake/OpenCVCompilerOptions.cmake” のファイルの中身 add_extra_compiler_option(-Werror=non-virtual-dtor) を #add_extra_compiler_option(-Werror=non-virtual-dtor) に変えることで, make時のエラーをパスする(らしい)
[Step4] cd C:\opencv\build\x64\test_mingw
で、 mingw32-make で mingw32-make install
[Step5] "C:\opencv\build\x64\test_mingw\bin"にPathを通しておく。あとはPC再起動しておいた方が安心
試してみたファイル(ネットに落ちていたものの一部(インクルード)を変更)
#include <stdio.h> #include "opencv2/highgui/highgui.hpp" #include <time.h> int main (int argc, char **argv) { int i, j; int nrow = 3; int ncol = 3; CvMat *src, *dst, *mul; double det; CvRNG rng = cvRNG (time (NULL)); /* 乱数の初期化 */ // (1) 行列のメモリ確保 src = cvCreateMat (nrow, ncol, CV_32FC1); dst = cvCreateMat (ncol, nrow, CV_32FC1); mul = cvCreateMat (nrow, nrow, CV_32FC1); // (2) 行列srcに乱数を代入 printf ("src\n"); cvmSet (src, 0, 0, 1); for (i = 0; i < src->rows; i++) { for (j = 0; j < src->cols; j++) { cvmSet (src, i, j, cvRandReal (&rng)); printf ("% lf\t", cvmGet (src, i, j)); } printf ("\n"); } // (3) 行列srcの逆行列を求めて,行列dstに代入 det = cvInvert (src, dst, CV_SVD); // (4) 行列srcの行列式を表示 printf ("det(src)=%lf\n", det); // (5) 行列dstの表示 printf ("dst\n"); for (i = 0; i < dst->rows; i++) { for (j = 0; j < dst->cols; j++) { printf ("% lf\t", cvmGet (dst, i, j)); } printf ("\n"); } // (6) 行列srcとdstの積を計算して確認 cvMatMul (src, dst, mul); printf ("mul\n"); for (i = 0; i < mul->rows; i++) { for (j = 0; j < mul->cols; j++) { printf ("% lf\t", cvmGet (mul, i, j)); } printf ("\n"); } // (7) 行列のメモリを開放 cvReleaseMat (&src); cvReleaseMat (&dst); cvReleaseMat (&mul); return 0; }
なんとか通したコンパイル
g++ -I"C:\opencv\build\include" -L"C:\opencv\build\x64\test_mingw\lib" test.cpp -lopencv_calib3d310 -lopencv_core310 -lopencv_features2d310 -lopencv_flann310 -lopencv_highgui310 -lopencv_imgcodecs310 -lopencv_imgproc310 -lopencv_ml310 -lopencv_objdetect310 -lopencv_photo310 -lopencv_shape310 -lopencv_stitching310 -lopencv_superres310 -lopencv_video310 -lopencv_videoio310 -lopencv_videostab310 -o test (よく分からないので、dllを全部リンクした悪例) (コンパイル時には改行は取ること)
実行結果
d:\>test test src 0.174088 0.378289 0.761955 0.174153 0.467867 0.709499 0.328849 0.444654 0.578379 det(src)=0.043136 dst 2.825524 -7.556030 5.546670 -8.348085 9.436506 -0.578052 4.811443 -2.958592 -0.980295 mul 1.000000 0.000000 -0.000000 0.000000 1.000001 0.000000 -0.000000 0.000000 1.000000
opencvを使ってライブラリを作る時の手順(私だけが分かれば良い)
■前提環境 (http://www.kobore.net/diary_techno/?date=20170315 に記載されたことを実施する) ■実施手順 (1)ファイル修正(2箇所のみ) D:\home\resource2\src\TransporterResourceProposerDll\include\SequentialCsvReader.h に #include <stdexcept> を追加 D:\home\resource2\src\TransporterResourceProposerDll\ //ss >> std::get_time(&timeval, "%H:%M"); ebata 1行コメントアウト を実施 (この1行だけは、どうしてもコンパイルエラーが取れなかった) (2)オブジェクト作成 D:\home\resource2\src\TransporterResourceProposerDllにて g++ -c -I"D:\home\resource2\src\TransporterResourceProposerDll\include" -I"C:\opencv\build\include" SequentialCsvReader.cpp -o SequentialCsvReader.o -std=c++11 g++ -c -I"D:\home\resource2\src\TransporterResourceProposerDll\include" api.cpp -o api.o -std=c++11 g++ -c -I"D:\home\resource2\src\TransporterResourceProposerDll\include" common_utils.cpp -o common_utils.o -std=c++11 g++ -c -I"D:\home\resource2\src\TransporterResourceProposerDll\include" TransporterResourceTable.cpp -o TransporterResourceTable.o -std=c++11 g++ -c -I"D:\home\resource2\src\TransporterResourceProposerDll\include" TransporterResourceProposer.cpp -o TransporterResourceProposer.o -std=c++11 g++ -c -I"D:\home\resource2\src\TransporterResourceProposerDll\include" StationTable.cpp -o StationTable.o -std=c++11 g++ -c -I"D:\home\resource2\src\TransporterResourceProposerDll\include" FlowGraph.cpp -o FlowGraph.o -std=c++11 g++ -c -I"D:\home\resource2\src\TransporterResourceProposerDll\include" -I"C:\opencv\build\include" PassengerVectorIntegrator.cpp -o PassengerVectorIntegrator.o -std=c++11 g++ -c -I"D:\home\resource2\src\TransporterResourceProposerDll\include" -I"C:\opencv\build\include" MaxFlowPathOptimizer.cpp -o MaxFlowPathOptimizer.o -std=c++11 g++ -c -I"D:\home\resource2\src\TransporterResourceProposerDll\include" SimpleLogWriter.cpp -o SimpleLogWriter.o -std=c++11 (3)ライブラリの作成 → ここでは"testtest.dll"という名前にしておく g++ -I"D:\home\resource2\src\TransporterResourceProposerDll\include" -I"C:\opencv\build\include" -I"C:\opencv\build\include" -L"C:\opencv\build\x64\test_mingw\lib" -shared -o testtest.dll api.o common_utils.o FlowGraph.o MaxFlowPathOptimizer.o PassengerVectorIntegrator.o SequentialCsvReader.o SimpleLogWriter.o StationTable.o TransporterResourceProposer.o TransporterResourceTable.o -lopencv_calib3d310 -lopencv_core310 -lopencv_features2d310 -lopencv_flann310 -lopencv_highgui310 -lopencv_imgcodecs310 -lopencv_imgproc310 -lopencv_ml310 -lopencv_objdetect310 -lopencv_photo310 -lopencv_shape310 -lopencv_stitching310 -lopencv_superres310 -lopencv_video310 -lopencv_videoio310 -lopencv_videostab310 -std=c++11 (ちなみに、上記のリンクは、面倒くさかったので、片っ端からリンクしたものであって、多分、こんなにリンクする必要はないはず。ちなみにコピベする時は、改行をを取り除くこと) (4)テストファイルの作成 D:\home\resource2\src\TransporterResourceProposerに移動して testtest.dllをここに移動した後、 g++ -L./ -o resource_proposer_main.exe resource_proposer_main.cpp -ltestest (ちなみに、この" -L./" (← リンクの場所を指定(ローカルであっても) が、あなどれないので注意) (5)実行テスト resource_proposer_main station _info.csv transport_resource_info.csv person_vector_info.csv restoration_time.csv new_transporters.csv, new_routes.csv, inout_table.csv で稼動を確認
# mingwの4.9.1では、 # >mingw32-make # で起動する CC = g++ CFLAGS = -g -std=c++11 INCLUDE = -I./include -I"C:\opencv\build\include" LDFLAGS = -L"C:\opencv\build\x64\test_mingw\lib" LIBS = -lopencv_core310 SRCS = $(wildcard *.cpp) # 全部のcppファイルを片っ端から拾う # 上記は、以下の内容を実施している #SRCS = api.cpp common_utils.cpp FlowGraph.o MaxFlowPathOptimizer.cpp PassengerVectorIntegrator.cpp SequentialCsvReader.cpp SimpleLogWriter.cpp StationTable.cpp TransporterResourceProposer.cpp TransporterResourceTable.cpp OBJS = $(SRCS:.cpp=.o) #SRCSの各ファイルのサフィックスの.cppを.oに変換 # 上記は、以下の内容を実施している #OBJS = api.o common_utils.o FlowGraph.o MaxFlowPathOptimizer.o PassengerVectorIntegrator.o SequentialCsvReader.o SimpleLogWriter.o StationTable.o TransporterResourceProposer.o TransporterResourceTable.o PROGRAM = TransporterResourceProposerDll.dll .cpp.o: $(CC) $(CFLAGS) -c $(INCLUDE) $(LDFLAGS) $< -o $@ # 上記は、以下の内容を実施している # g++ -g -std=c++11 -c -I./include -I"C:\opencv\build\include" -o api.o api.cpp # g++ -g -std=c++11 -c -I./include -I"C:\opencv\build\include" -o common_utils.o common_utils.cpp # ..... $(PROGRAM): $(OBJS) $(CC) $(INCLUDE) $(CFLAGS) $(LDFLAGS) $(OBJS) $(LIBS) -shared -o $(PROGRAM) # 上記は、以下の内容を実施している # g++ -I./include -I"C:\opencv\build\include" -g -std=c++11 -L"C:\opencv\build\x64\test_mingw\lib" api.o common_utils.o .... TransporterResourceTable.o (ここの改行は取り除く) # -lopencv_calib3d310 -lopencv_core310 -shared -o TransporterResourceProposerDll.dll .PHONY: clean clean: del *.o *.exe *.dll
# Makefileの説明は、これが秀逸 → http://shin.hateblo.jp/entry/2012/05/26/231036 # "gmake"で実行 # 無理にマクロなんか使わない(よけい分からなくなる) .PHONY: all all: ca-server ca-client ca-track ca-wire ca-operation1 ca-operation2 ca-monitor ca-server: ca-server.o ca-tools.o ca-init.o ca-mediate.o c-anemone.h ca-tools.h ca-init.h ca-mediate.h gcc -g -o ca-server ca-server.o ca-tools.o ca-init.o ca-mediate.o -Wl,--subsystem,console -lGrWin -lpthread -lwsock32 -lws2_32 -mwindows ca-client: ca-client.o ca-tools.o ca-init.o ca-track-init.o c-anemone.h ca-tools.h ca-init.h gcc -g -o ca-client ca-client.o ca-tools.o ca-init.o ca-track-init.o -Wl,--subsystem,console -lGrWin -lpthread -lwsock32 -lws2_32 -mwindows ca-track: ca-client.o ca-tools.o ca-init.o ca-track-init.o c-anemone.h ca-tools.h ca-init.h gcc -g -o ca-track ca-client.o ca-tools.o ca-init.o ca-track-init.o -Wl,--subsystem,console -lGrWin -lpthread -lwsock32 -lws2_32 -mwindows ca-wire: ca-client.o ca-tools.o ca-init.o ca-wire-init.o c-anemone.h ca-tools.h ca-init.h gcc -g -o ca-wire ca-client.o ca-tools.o ca-init.o ca-wire-init.o -Wl,--subsystem,console -lGrWin -lpthread -lwsock32 -lws2_32 -mwindows ca-operation1: ca-client.o ca-tools.o ca-init.o ca-operation1-init.o c-anemone.h ca-tools.h ca-init.h gcc -g -o ca-operation1 ca-client.o ca-tools.o ca-init.o ca-operation1-init.o -Wl,--subsystem,console -lGrWin -lpthread -lwsock32 -lws2_32 -mwindows ca-operation2: ca-client.o ca-tools.o ca-init.o ca-operation2-init.o c-anemone.h ca-tools.h ca-init.h gcc -g -o ca-operation2 ca-client.o ca-tools.o ca-init.o ca-operation2-init.o -Wl,--subsystem,console -lGrWin -lpthread -lwsock32 -lws2_32 -mwindows ca-monitor: ca-client.o ca-tools.o ca-init.o ca-monitor-init.o c-anemone.h ca-tools.h ca-init.h gcc -g -o ca-monitor ca-client.o ca-tools.o ca-init.o ca-monitor-init.o -Wl,--subsystem,console -lGrWin -lpthread -lwsock32 -lws2_32 -mwindows .PHONY: clean clean: del *.o *.exe #ヘッダファイルの依存関係 (gcc -MM ca-server.cpp で調べられる) ca-server.o: ca-server.cpp c-anemone.h ca-tools.h ca-init.h ca-mediate.h ca-client.o: ca-client.cpp c-anemone.h ca-tools.h ca-init.h ca-track-init.o: ca-track-init.cpp c-anemone.h ca-tools.h ca-wire-init.o: ca-wire-init.cpp c-anemone.h ca-tools.h ca-operation1-init.o: ca-operation1-init.cpp c-anemone.h ca-tools.h ca-operation2-init.o: ca-operation2-init.cpp c-anemone.h ca-tools.h ca-monitor-init.o: ca-monitor-init.cpp c-anemone.h ca-tools.h ca-init.o: ca-init.cpp c-anemone.h ca-tools.o: ca-tools.cpp c-anemone.h ca-tools.h
"XFLAG"というオプションを作って、"ABC"."PRT"などをつかってみた結果
/* test.cpp */ #include <stdio.h> int main(int argc, char *argv[]){ printf("Hello C World\n"); #if defined(ABC) printf("Morning ABC World\n"); #endif #if defined(PRT) printf("Goodby PRT World\n"); #endif return 0; }
# Makefile for test.cpp test: test.cpp ifeq ($(XFLAG),-DABC) # ここは"ABC"ではダメで "-DABC"と記載する # "mingw32-make XFLAG=-DABC"のときこっち gcc -Wall -O2 -o test test.cpp else #"mingw32-make XFLAG=-DPRT" または"mingw32-make"のときはこっち gcc $(XFLAG) -Wall -O2 -o test test.cpp endif
eepLearningの一つCNNは教師あり である。http://www.vision.cs.chubu.ac.jp/flabresearcharchive/bachelor/B13/Paper/fukui.pdf
では、教師なしのDeepLearningとは何か? そもそも「教師なし」という言葉の意味が分からない。
K-meansが教師なし、というのは理解できる。あれは 「ハミング距離」が教師であるとも言えると思うが。
―― AIの記事書く野郎どもの「無勉強さ」に、本気で腹立ってきたなー
ラズパイ(Rasberry Pi3)をホームセキュリティサーバとして稼動させて(24時間営業)います。 折角なら、これに、ラズパイにUSBメモリ(128GB)を装着して、ファイルサーバ(ビデオサーバ) としてしまう、と思って随分がんばったのですが、どうにも上手くいかず困っていました。 ■環境 ラズパイには、ubunts16.04を入れて(ディストリビューションを色々使うのが面倒なので ubuntsで統一)います。 ■前提 sambaが動くことは確認していること。 ■結論 原因は、UBSメモリがNTFSフォーマットだったことだったこと(らしい)。 ■対策 [Step.1] WindowsのNTFSでフォーマットしたHDDを使用出来るようにします。 >sudo apt-get -y install ntfs-3g [Step.2] マウントする。 >sudo mount -t ntfs-3g /dev/sda1 /mnt/usb_mount [Step.3] (以下は、まったく関係ないかもしれないけど) >sudo chown -R nobody:nogroup /mnt/usb_mount >sudo chmod 777 /mnt/usb_mount を実行 # 手当たりしだい実行したので、効果があるかどうか分からない。 その証拠に、 ebata@ebata-desktop:/mnt$ ls -la total 48 drwxr-xr-x 3 root root 4096 11月 8 22:22 . drwxr-xr-x 22 root root 4096 4月 21 2016 .. drwxrwxrwx 1 root root 40960 3月 23 20:59 usb_mount とオーナが全然変更していないから。 [Step.4] あとは、"/etc/samba/smb.conf"に以下のような[usb_mount]を作る # Un-comment the following and create the netlogon directory for Domain Logons # (you need to configure Samba to act as a domain controller too.) ;[netlogon] [share] comment = Network Logon Service ; path = /home/samba/netlogon path = /var/samba writeable = true force create mode = 0666 force directory mode = 0777 guest ok = yes guest only = yes [usb_mount] comment = Network Logon Service1 ; path = /media/ebata/7FAD-461E/testtest ← 苦労のあと path = /mnt/usb_mount ; path = /media/ebata/A6F69570F695420B ← 苦労のあと writeable = true force create mode = 0666 force directory mode = 0777 writeable = yes guest ok = yes guest only = yes public = yes # Un-comment the following and create the profiles directory to store [Step.5] 最後に、sambaを再起動します。 >service smbd restart [Step.6] 立ち上げ時に自動的にマウントするには、"/etc/fstab"の最後に以下の一行を加えます。 /dev/sda1 /mnt/usb_mount ntfs-3g locale=ja_JP.UTF-8 0 0 但し、メディアが差し込まれていないままに、これを実行すると、軌道に失敗するみたいなので、使わない時はコメントアウトすることを忘れないように。 ■確認 あとは、Windowsの方で"usb_mount"を叩いて、中身が見えたら成功しています。 (上手く動かない時は、「権限がどーのこーの」と言われる) 以上
ラズパイのUbuntu 16.04の立ち上げに ========================================================== Please make sure that directory "/home/xxxx/ダウンロード" exists or configure it with blueman-services ========================================================== が出てきて、誠にうっとうしい件。 「システム」→「設定」→「ハードウェア」→「Bluetoothマネージャ」→「表示」 →「ローカルサービス」→「転送」→「incoming Folder」に"Downloads"を選ぶ これで消えるようになる
[インストール] sudo apt-get update sudo apt-get install wireshark [実行] sudo wireshark