Pull to refresh
22
0
Александр Ященко @alexhoppus

User

Send message
PS: зачем было заворачивать код в func?

Так лучше видно на стеке адрес возврата, который мы будем перезаписывать, т.к. он находится внутри main, а не в libc
0x7fffffffdea0: 0xffffdec0 0x00007fff 0x00400611 0x00000000

400611: c9 leaveq
У меня есть вопрос по поводу того, «что именно делает MMU».
Вы пишете:
Если нужной записи в TLB нет, то приходится искать ее в таблицах страниц, которые операционная система размещает в нетранслируемой области ОЗУ (чтобы не было промаха TLB при обработке предыдущего промаха). Поиск может быть реализован как аппаратно, так и программно — через обработчик исключения, называемого страничной ошибкой (page fault). Найденная запись добавляется в TLB, после чего команда, вызвавшая промах TLB, выполняется снова.

Я спрашиваю, потому что этот момент — момент того, что именно делает MMU для меня до сих пор остается загадкой. В приведенной цитате либо Вы ошибаетесь, либо я чего-то недопонимаю. Объясняю: page_fault это прерывание, которое возникает, если MMU лезет в таблицы (которые в ОЗУ) и не находит нужный PTE и физический адрес, вместо этого адреса там будет стоять флаг, что страница засвапирована, и её положение на диске. После этого возникает page fault и программный обработчик вытаскивает страницу с диска в память, физический адрес заносится в ту PTE и попытка трансляции повторяется. Так, что как я понимаю к TLB это вообще отношение имеет довольно косвенное…
Что я до конца не понимаю: когда виртуальный адрес приходит к MMU, MMU нужно его преобразовать в физический. Это делается, как Вы уже говорили, через те самые таблицы (PGD->PMD->PTE в Linux). При смене контекста в регистр CR3 (x86) кладется адрес таблиц для конкретного процесса (у каждого процесса свои таблицы преобразования виртуальных адресов в физические), отсюда MMU знает адрес таблиц в ОЗУ. Дальше MMU должна по идее сделать несколько обращений к памяти, чтобы пройти по иерархии PGD->PMD->PTE и вытащить физический адрес. Как выполняются эти обращения? В MMU есть какая-то аппаратная часть которая на вход контроллера памяти выдает запрос на чтение, или это как — то делается через процессор? Помогите мне понять. Спасибо.
Ни на какие, я не правильно воспринял то, что написано во втором абзаце.
Очень интересно. В начале поста я нашел ссылку только на первую статью, лучше что бы были все. Плюс было бы интереснее, если бы было побольше рисунков, плотность и восприятие информации, представленной в виде схем и рисунков выше.
Во — первых
Если посмотреть на твою выборку, то видно что лица в первую очередь различаются не ЛИЦАМИ а общим цветовым фоном и наполнением. 1.) Первая линейка (фото где женщина) — светлые изображения. 2.) Вторая линейка — белое и черное с явным контрастом. 3.) Последняя линейка — Серое размытое. В результате у тебя классификатор заточится не на форму лица и его особенности, а на ненужные тебе совсем особенности изображений Вывод — выборка не репрезентативна, на фото в других условиях (при другом освещении например) обученная модель не сработает.
Во-вторых
Сами изображения для обучения используют редко, обычно используют некие дескрипторы (см HOG, LBP, Haar)
В-третьих
Ознакомься с этой вещью docs.opencv.org/doc/tutorials/objdetect/cascade_classifier/cascade_classifier.html и сравни производительность.
И ещё
Скачай базу с лицами и протестируй на ней, 10 изображений это очень мало для получения работоспособной модели.
да, я понимаю, что не эквивалентно. спасибо большое, надо код функции определения принадлежности точки переписать след образом
function [ color] = is_a_m_point( constant )
    color = 0;
    z = 0; 
    for i = 1 : 100
          z = z^(2)  + constant;
        if abs(z) > 10^5
                color = 255 - 2.55 * (i - 1);
                return;
        end
    end
end
Если рассматривать произвольный случай может просто имеет смысл расширить границы расходимости и надеяться, что их неточное указание для произвольного случая не сильно исказит картину? (хотя итак со скоростью проблемы) Для множества Мандельброта тогда надо было рассматривать границы [-2, 2] [-2; 2], хотя картина вроде не сильно меняется по сравнению [-2, 1] [-1.5; 1.5]. Спасибо, что прояснили.
Вообще говоря константы [-2, 1] [-1.5; 1.5] были выбраны когда я строил множество Мондельброта, это просто начальная область в которой мы начинаем рассматривать фрактал. Можете другие выбрать. Про рекуррентную формулу — согласен.
Про цвет — нет не специально, константа -14.5 для матлаба эквивалентна 0 (черному). Вообще я ее (константу 5.5) подбирал экспериментально из собственных эстетических воззрений.
Это новый формат курсов, курс AndrewNG один из многих, полный список можно посмотреть тут coursera.org
Картинки — материал задания на курсах по компьютерному зрению в МГУ (детекция распознавание номеров). Возможно большой, это не предметный спор, надо на конкретной выборке смотреть.
Знакомые картинки: )Я не знаю, что такое характеристический вектор особой точки. Я это же задание делал два года назад, описанным мною выше способом. Я могу что-то путать, но вроде я такой применял метод. Кстати, код у меня до сих пор сохранился, но рыться в нем сейчас нет никакого желания.
Можно каждую точку классифицировать как точку фона или номера, предварительно обучившись на размеченной базе, а потом выделить подходящий кластер точек как область в которой есть номер. Далее уже распознавать.
BelBES,Так делать не надо, нужна как можно более вариативная выборка. (все возможные цифры и символы которые могут встретиться). Если вы обучаете SVM по крайней мере по сифтам с точек.
Ключевые точки будут разные, но если у Вас в обучающей выборке будет достаточное количество номеров, то общие паттерны будут выявляться, все равно на номере ограниченный набор символов, это раз. Во — вторых там явные градиентные перепады (контраст белое на черном) концентрированные. Найти номер будет несложно. После того как Вы нашли номер, надо будет уже распознавать его как сказал Fesor.
Пробовал, это одно из заданий на курсах по компьютерному зрению в МГУ. Да это и теоретически и практически возможно. Причем и на ночной базе тоже работало, правда, естественно, с меньшей точностью. Вы можете использовать surf на размеченных картинках и обучить модель svm, которая в дальнейшем будет относить сдетектированные точки к номеру или фону.

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity