opencv_createsamples
и opencv_traincascade
, а также необходимые им DLL-библиотеки. Распакуйте их в рабочий каталог в корне диска, без русских букв и пробелов в названии. Здесь и далее предполагается, что C:\MyDirName
- ваш рабочий каталог.negatives
.dir C:\MyDirName\negatives\*.jpg /B /S >C:\MyDirName\negatives\negatives_abs.txt
dir C:\MyDirName\negatives\*.jpg /B >C:\MyDirName\negatives\negatives_rel.txt
C:\MyDirName\positives
и C:\MyDirName\training
. Поместите ваше изображение - положительный пример в каталог C:\MyDirName\
и назовите его positive.jpg
. В качестве положительного примера желательно разместить ваш объект на светлом фоне, если он тёмный, и наоборот.opencv_createsamples
. Команда будет выглядеть примерно следующим образом:C:\MyDirName\opencv_createsamples.exe -info positives\info.lst -img positive.jpg -bg negatives\negatives_rel.txt -maxxangle 0.1 -maxyangle 0.1 -maxzangle 0.1 -bgcolor 0 -bgthresh 0 -w 50 -h 50 -num 100
C:\MyDirName\opencv_createsamples.exe -info positives\info.lst -num 100 -w 20 -h 20 -vec positives\positives.vec
C:\MyDirName\opencv_traincascade.exe -data training -vec positives\positives.vec -bg negatives\negatives_abs.txt -numStages 100 -numPos 100 -numNeg 100 -featureType haar -w 20 -h 20 -minHitRate 0.999 -maxFalseAlarmRate 0.4 -precalcValBufSize 4048 -precalcIdxBufSize 4048 -numThreads 24 -acceptanceRatioBreakValue 10e-5
def order_weight(string):
return { n: sum(map(int, n)) for n in string.split() }
(1/e, f(1/e))
, это критическая точка. Критическая точкой называется точки где функция либо не дифференцируема, либо производная функции равна нулю. y = x^x, ее производная будет x^x*(ln(x) + 1).
далее приравниваем производную к нулю x^x*(ln(x) + 1) = 0 и решаем для x.
Решением данного уравнения будет 1/e
Подставляем 1/e в исходное функцию и получаем это вы уже нашли округленно 0.692. (1/e,0.692) - Критическая точка. А в критических точках функция меняет свое направление, то есть если до этого шла на убавление проходя через критическую точку она пойдет на возрастание и наоборот. Выходит, что до 1/e функция убывает, а после - возрастает. Откуда берется такая связь?
PIL.Image.Open()
это для открытия файлов. То что вы спрашиваете должно звучать так как конвертировать numpy массив в PIL.Image объект. Для это существует метод PIL.Image.fromarray(array)
, Возможно придется сделать rehape у массива, возможно придется задать какие то дополнительные параметры у метода fromarray. Но ваш вопрос решается этим методом. А и что покажет тестер на принимающем прибореОпять же, я там в комментариях писал про высокоимпедансное состояние.
test_dataset = ASDataset(client_file="raw/client_train_raw.txt", imposter_file="raw/imposter_train_raw.txt", \
transforms=preprocess)
train_dataset = ASDataset(client_file="raw/client_test_raw.txt", imposter_file="raw/imposter_test_raw.txt", \
transforms=preprocess)
train_dataloader = DataLoader(train_dataset, batch_size=128, shuffle=True)
test_dataloader = DataLoader(test_dataset, batch_size=128, shuffle=True)
в стране война, и какого-то хрена в магазинах пропали все измерительные приборы,Извините, не знал про такие подробности, иначе не иронизировал бы.